houston-core 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2009) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +3 -2
  3. data/README.md +27 -6
  4. data/app/concerns/commit_synchronizer.rb +17 -0
  5. data/bin/houston +4 -0
  6. data/db/structure.sql +7 -16
  7. data/houston.gemspec +4 -3
  8. data/lib/generators/instance_generator.rb +29 -0
  9. data/lib/generators/module_generator.rb +89 -0
  10. data/lib/houston/cli.rb +19 -0
  11. data/lib/houston/version.rb +1 -1
  12. data/templates/new-instance/.gitignore +16 -0
  13. data/templates/new-instance/Gemfile +48 -0
  14. data/templates/new-instance/README.md +39 -0
  15. data/templates/new-instance/Rakefile +7 -0
  16. data/templates/new-instance/bin/rails +8 -0
  17. data/templates/new-instance/bin/setup +22 -0
  18. data/templates/new-instance/config.ru +12 -0
  19. data/templates/new-instance/config/abilities.rb +81 -0
  20. data/templates/new-instance/config/alerts/cves.rb +14 -0
  21. data/templates/new-instance/config/alerts/errs.rb +30 -0
  22. data/templates/new-instance/config/conversations/mentions/unfurl_alerts.rb +17 -0
  23. data/templates/new-instance/config/conversations/mentions/unfurl_tasks.rb +16 -0
  24. data/templates/new-instance/config/database.yml +20 -0
  25. data/templates/new-instance/config/environments/.keep +0 -0
  26. data/templates/new-instance/config/environments/development.rb +6 -0
  27. data/templates/new-instance/config/environments/production.rb +3 -0
  28. data/templates/new-instance/config/environments/test.rb +3 -0
  29. data/templates/new-instance/config/initializers/.keep +0 -0
  30. data/templates/new-instance/config/integrations/engineyard.rb +4 -0
  31. data/templates/new-instance/config/integrations/errbit.rb +6 -0
  32. data/templates/new-instance/config/integrations/gemnasium.rb +2 -0
  33. data/templates/new-instance/config/integrations/github.rb +14 -0
  34. data/templates/new-instance/config/integrations/jenkins.rb +7 -0
  35. data/templates/new-instance/config/integrations/ldap.rb +5 -0
  36. data/templates/new-instance/config/jobs/email_about_open_alerts.rb +5 -0
  37. data/templates/new-instance/config/jobs/slack_reminders_about_alerts.rb +66 -0
  38. data/templates/new-instance/config/jobs/sync_commits.rb +3 -0
  39. data/templates/new-instance/config/jobs/sync_pull_requests.rb +3 -0
  40. data/templates/new-instance/config/jobs/sync_tickets.rb +3 -0
  41. data/templates/new-instance/config/main.rb +295 -0
  42. data/templates/new-instance/config/triggers/alerts/slack_when_assigned.rb +23 -0
  43. data/templates/new-instance/config/triggers/alerts/slack_when_opened.rb +8 -0
  44. data/templates/new-instance/config/triggers/daemons/health.rb +21 -0
  45. data/templates/new-instance/config/triggers/deploy/autoresolve_errs.rb +11 -0
  46. data/templates/new-instance/config/triggers/deploy/checkout_mentioned_alerts.rb +5 -0
  47. data/templates/new-instance/config/triggers/deploy/notify_deployer_when_finished.rb +23 -0
  48. data/templates/new-instance/config/triggers/github/publish_comments_on_slack.rb +36 -0
  49. data/templates/new-instance/config/triggers/tests/slack_when_analyzed.rb +30 -0
  50. data/templates/new-instance/config/triggers/tests/slack_when_completed.rb +38 -0
  51. data/templates/new-instance/config/triggers/tickets/email_testing_notes.rb +7 -0
  52. data/templates/new-instance/config/triggers/tickets/mark_tasks_completed_on_commit.rb +7 -0
  53. data/templates/new-instance/db/structure.sql +2291 -0
  54. data/templates/new-instance/lib/gemnasium-alert.rb +25 -0
  55. data/templates/new-instance/lib/slack_helpers.rb +66 -0
  56. data/templates/new-instance/lib/time_helpers.rb +7 -0
  57. data/templates/new-instance/public/404.html +58 -0
  58. data/templates/new-instance/public/422.html +58 -0
  59. data/templates/new-instance/public/500.html +57 -0
  60. data/templates/new-instance/public/favicon.ico +0 -0
  61. data/templates/new-instance/public/favicon.png +0 -0
  62. data/templates/new-instance/public/images/emoji/+1.png +0 -0
  63. data/templates/new-instance/public/images/emoji/-1.png +0 -0
  64. data/templates/new-instance/public/images/emoji/100.png +0 -0
  65. data/templates/new-instance/public/images/emoji/1234.png +0 -0
  66. data/templates/new-instance/public/images/emoji/8ball.png +0 -0
  67. data/templates/new-instance/public/images/emoji/a.png +0 -0
  68. data/templates/new-instance/public/images/emoji/ab.png +0 -0
  69. data/templates/new-instance/public/images/emoji/abc.png +0 -0
  70. data/templates/new-instance/public/images/emoji/abcd.png +0 -0
  71. data/templates/new-instance/public/images/emoji/accept.png +0 -0
  72. data/templates/new-instance/public/images/emoji/aerial_tramway.png +0 -0
  73. data/templates/new-instance/public/images/emoji/airplane.png +0 -0
  74. data/templates/new-instance/public/images/emoji/alarm_clock.png +0 -0
  75. data/templates/new-instance/public/images/emoji/alien.png +0 -0
  76. data/templates/new-instance/public/images/emoji/ambulance.png +0 -0
  77. data/templates/new-instance/public/images/emoji/anchor.png +0 -0
  78. data/templates/new-instance/public/images/emoji/angel.png +0 -0
  79. data/templates/new-instance/public/images/emoji/anger.png +0 -0
  80. data/templates/new-instance/public/images/emoji/angry.png +0 -0
  81. data/templates/new-instance/public/images/emoji/anguished.png +0 -0
  82. data/templates/new-instance/public/images/emoji/ant.png +0 -0
  83. data/templates/new-instance/public/images/emoji/apple.png +0 -0
  84. data/templates/new-instance/public/images/emoji/aquarius.png +0 -0
  85. data/templates/new-instance/public/images/emoji/aries.png +0 -0
  86. data/templates/new-instance/public/images/emoji/arrow_backward.png +0 -0
  87. data/templates/new-instance/public/images/emoji/arrow_double_down.png +0 -0
  88. data/templates/new-instance/public/images/emoji/arrow_double_up.png +0 -0
  89. data/templates/new-instance/public/images/emoji/arrow_down.png +0 -0
  90. data/templates/new-instance/public/images/emoji/arrow_down_small.png +0 -0
  91. data/templates/new-instance/public/images/emoji/arrow_forward.png +0 -0
  92. data/templates/new-instance/public/images/emoji/arrow_heading_down.png +0 -0
  93. data/templates/new-instance/public/images/emoji/arrow_heading_up.png +0 -0
  94. data/templates/new-instance/public/images/emoji/arrow_left.png +0 -0
  95. data/templates/new-instance/public/images/emoji/arrow_lower_left.png +0 -0
  96. data/templates/new-instance/public/images/emoji/arrow_lower_right.png +0 -0
  97. data/templates/new-instance/public/images/emoji/arrow_right.png +0 -0
  98. data/templates/new-instance/public/images/emoji/arrow_right_hook.png +0 -0
  99. data/templates/new-instance/public/images/emoji/arrow_up.png +0 -0
  100. data/templates/new-instance/public/images/emoji/arrow_up_down.png +0 -0
  101. data/templates/new-instance/public/images/emoji/arrow_up_small.png +0 -0
  102. data/templates/new-instance/public/images/emoji/arrow_upper_left.png +0 -0
  103. data/templates/new-instance/public/images/emoji/arrow_upper_right.png +0 -0
  104. data/templates/new-instance/public/images/emoji/arrows_clockwise.png +0 -0
  105. data/templates/new-instance/public/images/emoji/arrows_counterclockwise.png +0 -0
  106. data/templates/new-instance/public/images/emoji/art.png +0 -0
  107. data/templates/new-instance/public/images/emoji/articulated_lorry.png +0 -0
  108. data/templates/new-instance/public/images/emoji/astonished.png +0 -0
  109. data/templates/new-instance/public/images/emoji/athletic_shoe.png +0 -0
  110. data/templates/new-instance/public/images/emoji/atm.png +0 -0
  111. data/templates/new-instance/public/images/emoji/b.png +0 -0
  112. data/templates/new-instance/public/images/emoji/baby.png +0 -0
  113. data/templates/new-instance/public/images/emoji/baby_bottle.png +0 -0
  114. data/templates/new-instance/public/images/emoji/baby_chick.png +0 -0
  115. data/templates/new-instance/public/images/emoji/baby_symbol.png +0 -0
  116. data/templates/new-instance/public/images/emoji/back.png +0 -0
  117. data/templates/new-instance/public/images/emoji/baggage_claim.png +0 -0
  118. data/templates/new-instance/public/images/emoji/balloon.png +0 -0
  119. data/templates/new-instance/public/images/emoji/ballot_box_with_check.png +0 -0
  120. data/templates/new-instance/public/images/emoji/bamboo.png +0 -0
  121. data/templates/new-instance/public/images/emoji/banana.png +0 -0
  122. data/templates/new-instance/public/images/emoji/bangbang.png +0 -0
  123. data/templates/new-instance/public/images/emoji/bank.png +0 -0
  124. data/templates/new-instance/public/images/emoji/bar_chart.png +0 -0
  125. data/templates/new-instance/public/images/emoji/barber.png +0 -0
  126. data/templates/new-instance/public/images/emoji/baseball.png +0 -0
  127. data/templates/new-instance/public/images/emoji/basketball.png +0 -0
  128. data/templates/new-instance/public/images/emoji/bath.png +0 -0
  129. data/templates/new-instance/public/images/emoji/bathtub.png +0 -0
  130. data/templates/new-instance/public/images/emoji/battery.png +0 -0
  131. data/templates/new-instance/public/images/emoji/bear.png +0 -0
  132. data/templates/new-instance/public/images/emoji/bee.png +0 -0
  133. data/templates/new-instance/public/images/emoji/beer.png +0 -0
  134. data/templates/new-instance/public/images/emoji/beers.png +0 -0
  135. data/templates/new-instance/public/images/emoji/beetle.png +0 -0
  136. data/templates/new-instance/public/images/emoji/beginner.png +0 -0
  137. data/templates/new-instance/public/images/emoji/bell.png +0 -0
  138. data/templates/new-instance/public/images/emoji/bento.png +0 -0
  139. data/templates/new-instance/public/images/emoji/bicyclist.png +0 -0
  140. data/templates/new-instance/public/images/emoji/bike.png +0 -0
  141. data/templates/new-instance/public/images/emoji/bikini.png +0 -0
  142. data/templates/new-instance/public/images/emoji/bird.png +0 -0
  143. data/templates/new-instance/public/images/emoji/birthday.png +0 -0
  144. data/templates/new-instance/public/images/emoji/black_circle.png +0 -0
  145. data/templates/new-instance/public/images/emoji/black_joker.png +0 -0
  146. data/templates/new-instance/public/images/emoji/black_large_square.png +0 -0
  147. data/templates/new-instance/public/images/emoji/black_medium_small_square.png +0 -0
  148. data/templates/new-instance/public/images/emoji/black_medium_square.png +0 -0
  149. data/templates/new-instance/public/images/emoji/black_nib.png +0 -0
  150. data/templates/new-instance/public/images/emoji/black_small_square.png +0 -0
  151. data/templates/new-instance/public/images/emoji/black_square_button.png +0 -0
  152. data/templates/new-instance/public/images/emoji/blossom.png +0 -0
  153. data/templates/new-instance/public/images/emoji/blowfish.png +0 -0
  154. data/templates/new-instance/public/images/emoji/blue_book.png +0 -0
  155. data/templates/new-instance/public/images/emoji/blue_car.png +0 -0
  156. data/templates/new-instance/public/images/emoji/blue_heart.png +0 -0
  157. data/templates/new-instance/public/images/emoji/blush.png +0 -0
  158. data/templates/new-instance/public/images/emoji/boar.png +0 -0
  159. data/templates/new-instance/public/images/emoji/boat.png +0 -0
  160. data/templates/new-instance/public/images/emoji/bomb.png +0 -0
  161. data/templates/new-instance/public/images/emoji/book.png +0 -0
  162. data/templates/new-instance/public/images/emoji/bookmark.png +0 -0
  163. data/templates/new-instance/public/images/emoji/bookmark_tabs.png +0 -0
  164. data/templates/new-instance/public/images/emoji/books.png +0 -0
  165. data/templates/new-instance/public/images/emoji/boom.png +0 -0
  166. data/templates/new-instance/public/images/emoji/boot.png +0 -0
  167. data/templates/new-instance/public/images/emoji/bouquet.png +0 -0
  168. data/templates/new-instance/public/images/emoji/bow.png +0 -0
  169. data/templates/new-instance/public/images/emoji/bowling.png +0 -0
  170. data/templates/new-instance/public/images/emoji/bowtie.png +0 -0
  171. data/templates/new-instance/public/images/emoji/boy.png +0 -0
  172. data/templates/new-instance/public/images/emoji/bread.png +0 -0
  173. data/templates/new-instance/public/images/emoji/bride_with_veil.png +0 -0
  174. data/templates/new-instance/public/images/emoji/bridge_at_night.png +0 -0
  175. data/templates/new-instance/public/images/emoji/briefcase.png +0 -0
  176. data/templates/new-instance/public/images/emoji/broken_heart.png +0 -0
  177. data/templates/new-instance/public/images/emoji/bug.png +0 -0
  178. data/templates/new-instance/public/images/emoji/bulb.png +0 -0
  179. data/templates/new-instance/public/images/emoji/bullettrain_front.png +0 -0
  180. data/templates/new-instance/public/images/emoji/bullettrain_side.png +0 -0
  181. data/templates/new-instance/public/images/emoji/bus.png +0 -0
  182. data/templates/new-instance/public/images/emoji/busstop.png +0 -0
  183. data/templates/new-instance/public/images/emoji/bust_in_silhouette.png +0 -0
  184. data/templates/new-instance/public/images/emoji/busts_in_silhouette.png +0 -0
  185. data/templates/new-instance/public/images/emoji/cactus.png +0 -0
  186. data/templates/new-instance/public/images/emoji/cake.png +0 -0
  187. data/templates/new-instance/public/images/emoji/calendar.png +0 -0
  188. data/templates/new-instance/public/images/emoji/calling.png +0 -0
  189. data/templates/new-instance/public/images/emoji/camel.png +0 -0
  190. data/templates/new-instance/public/images/emoji/camera.png +0 -0
  191. data/templates/new-instance/public/images/emoji/cancer.png +0 -0
  192. data/templates/new-instance/public/images/emoji/candy.png +0 -0
  193. data/templates/new-instance/public/images/emoji/capital_abcd.png +0 -0
  194. data/templates/new-instance/public/images/emoji/capricorn.png +0 -0
  195. data/templates/new-instance/public/images/emoji/car.png +0 -0
  196. data/templates/new-instance/public/images/emoji/card_index.png +0 -0
  197. data/templates/new-instance/public/images/emoji/carousel_horse.png +0 -0
  198. data/templates/new-instance/public/images/emoji/cat.png +0 -0
  199. data/templates/new-instance/public/images/emoji/cat2.png +0 -0
  200. data/templates/new-instance/public/images/emoji/cd.png +0 -0
  201. data/templates/new-instance/public/images/emoji/chart.png +0 -0
  202. data/templates/new-instance/public/images/emoji/chart_with_downwards_trend.png +0 -0
  203. data/templates/new-instance/public/images/emoji/chart_with_upwards_trend.png +0 -0
  204. data/templates/new-instance/public/images/emoji/checkered_flag.png +0 -0
  205. data/templates/new-instance/public/images/emoji/cherries.png +0 -0
  206. data/templates/new-instance/public/images/emoji/cherry_blossom.png +0 -0
  207. data/templates/new-instance/public/images/emoji/chestnut.png +0 -0
  208. data/templates/new-instance/public/images/emoji/chicken.png +0 -0
  209. data/templates/new-instance/public/images/emoji/children_crossing.png +0 -0
  210. data/templates/new-instance/public/images/emoji/chocolate_bar.png +0 -0
  211. data/templates/new-instance/public/images/emoji/christmas_tree.png +0 -0
  212. data/templates/new-instance/public/images/emoji/church.png +0 -0
  213. data/templates/new-instance/public/images/emoji/cinema.png +0 -0
  214. data/templates/new-instance/public/images/emoji/circus_tent.png +0 -0
  215. data/templates/new-instance/public/images/emoji/city_sunrise.png +0 -0
  216. data/templates/new-instance/public/images/emoji/city_sunset.png +0 -0
  217. data/templates/new-instance/public/images/emoji/cl.png +0 -0
  218. data/templates/new-instance/public/images/emoji/clap.png +0 -0
  219. data/templates/new-instance/public/images/emoji/clapper.png +0 -0
  220. data/templates/new-instance/public/images/emoji/clipboard.png +0 -0
  221. data/templates/new-instance/public/images/emoji/clock1.png +0 -0
  222. data/templates/new-instance/public/images/emoji/clock10.png +0 -0
  223. data/templates/new-instance/public/images/emoji/clock1030.png +0 -0
  224. data/templates/new-instance/public/images/emoji/clock11.png +0 -0
  225. data/templates/new-instance/public/images/emoji/clock1130.png +0 -0
  226. data/templates/new-instance/public/images/emoji/clock12.png +0 -0
  227. data/templates/new-instance/public/images/emoji/clock1230.png +0 -0
  228. data/templates/new-instance/public/images/emoji/clock130.png +0 -0
  229. data/templates/new-instance/public/images/emoji/clock2.png +0 -0
  230. data/templates/new-instance/public/images/emoji/clock230.png +0 -0
  231. data/templates/new-instance/public/images/emoji/clock3.png +0 -0
  232. data/templates/new-instance/public/images/emoji/clock330.png +0 -0
  233. data/templates/new-instance/public/images/emoji/clock4.png +0 -0
  234. data/templates/new-instance/public/images/emoji/clock430.png +0 -0
  235. data/templates/new-instance/public/images/emoji/clock5.png +0 -0
  236. data/templates/new-instance/public/images/emoji/clock530.png +0 -0
  237. data/templates/new-instance/public/images/emoji/clock6.png +0 -0
  238. data/templates/new-instance/public/images/emoji/clock630.png +0 -0
  239. data/templates/new-instance/public/images/emoji/clock7.png +0 -0
  240. data/templates/new-instance/public/images/emoji/clock730.png +0 -0
  241. data/templates/new-instance/public/images/emoji/clock8.png +0 -0
  242. data/templates/new-instance/public/images/emoji/clock830.png +0 -0
  243. data/templates/new-instance/public/images/emoji/clock9.png +0 -0
  244. data/templates/new-instance/public/images/emoji/clock930.png +0 -0
  245. data/templates/new-instance/public/images/emoji/closed_book.png +0 -0
  246. data/templates/new-instance/public/images/emoji/closed_lock_with_key.png +0 -0
  247. data/templates/new-instance/public/images/emoji/closed_umbrella.png +0 -0
  248. data/templates/new-instance/public/images/emoji/cloud.png +0 -0
  249. data/templates/new-instance/public/images/emoji/clubs.png +0 -0
  250. data/templates/new-instance/public/images/emoji/cn.png +0 -0
  251. data/templates/new-instance/public/images/emoji/cocktail.png +0 -0
  252. data/templates/new-instance/public/images/emoji/coffee.png +0 -0
  253. data/templates/new-instance/public/images/emoji/cold_sweat.png +0 -0
  254. data/templates/new-instance/public/images/emoji/collision.png +0 -0
  255. data/templates/new-instance/public/images/emoji/computer.png +0 -0
  256. data/templates/new-instance/public/images/emoji/confetti_ball.png +0 -0
  257. data/templates/new-instance/public/images/emoji/confounded.png +0 -0
  258. data/templates/new-instance/public/images/emoji/confused.png +0 -0
  259. data/templates/new-instance/public/images/emoji/congratulations.png +0 -0
  260. data/templates/new-instance/public/images/emoji/construction.png +0 -0
  261. data/templates/new-instance/public/images/emoji/construction_worker.png +0 -0
  262. data/templates/new-instance/public/images/emoji/convenience_store.png +0 -0
  263. data/templates/new-instance/public/images/emoji/cookie.png +0 -0
  264. data/templates/new-instance/public/images/emoji/cool.png +0 -0
  265. data/templates/new-instance/public/images/emoji/cop.png +0 -0
  266. data/templates/new-instance/public/images/emoji/copyright.png +0 -0
  267. data/templates/new-instance/public/images/emoji/corn.png +0 -0
  268. data/templates/new-instance/public/images/emoji/couple.png +0 -0
  269. data/templates/new-instance/public/images/emoji/couple_with_heart.png +0 -0
  270. data/templates/new-instance/public/images/emoji/couplekiss.png +0 -0
  271. data/templates/new-instance/public/images/emoji/cow.png +0 -0
  272. data/templates/new-instance/public/images/emoji/cow2.png +0 -0
  273. data/templates/new-instance/public/images/emoji/credit_card.png +0 -0
  274. data/templates/new-instance/public/images/emoji/crescent_moon.png +0 -0
  275. data/templates/new-instance/public/images/emoji/crocodile.png +0 -0
  276. data/templates/new-instance/public/images/emoji/crossed_flags.png +0 -0
  277. data/templates/new-instance/public/images/emoji/crown.png +0 -0
  278. data/templates/new-instance/public/images/emoji/cry.png +0 -0
  279. data/templates/new-instance/public/images/emoji/crying_cat_face.png +0 -0
  280. data/templates/new-instance/public/images/emoji/crystal_ball.png +0 -0
  281. data/templates/new-instance/public/images/emoji/cupid.png +0 -0
  282. data/templates/new-instance/public/images/emoji/curly_loop.png +0 -0
  283. data/templates/new-instance/public/images/emoji/currency_exchange.png +0 -0
  284. data/templates/new-instance/public/images/emoji/curry.png +0 -0
  285. data/templates/new-instance/public/images/emoji/custard.png +0 -0
  286. data/templates/new-instance/public/images/emoji/customs.png +0 -0
  287. data/templates/new-instance/public/images/emoji/cyclone.png +0 -0
  288. data/templates/new-instance/public/images/emoji/dancer.png +0 -0
  289. data/templates/new-instance/public/images/emoji/dancers.png +0 -0
  290. data/templates/new-instance/public/images/emoji/dango.png +0 -0
  291. data/templates/new-instance/public/images/emoji/dart.png +0 -0
  292. data/templates/new-instance/public/images/emoji/dash.png +0 -0
  293. data/templates/new-instance/public/images/emoji/date.png +0 -0
  294. data/templates/new-instance/public/images/emoji/de.png +0 -0
  295. data/templates/new-instance/public/images/emoji/deciduous_tree.png +0 -0
  296. data/templates/new-instance/public/images/emoji/department_store.png +0 -0
  297. data/templates/new-instance/public/images/emoji/diamond_shape_with_a_dot_inside.png +0 -0
  298. data/templates/new-instance/public/images/emoji/diamonds.png +0 -0
  299. data/templates/new-instance/public/images/emoji/disappointed.png +0 -0
  300. data/templates/new-instance/public/images/emoji/disappointed_relieved.png +0 -0
  301. data/templates/new-instance/public/images/emoji/dizzy.png +0 -0
  302. data/templates/new-instance/public/images/emoji/dizzy_face.png +0 -0
  303. data/templates/new-instance/public/images/emoji/do_not_litter.png +0 -0
  304. data/templates/new-instance/public/images/emoji/dog.png +0 -0
  305. data/templates/new-instance/public/images/emoji/dog2.png +0 -0
  306. data/templates/new-instance/public/images/emoji/dollar.png +0 -0
  307. data/templates/new-instance/public/images/emoji/dolls.png +0 -0
  308. data/templates/new-instance/public/images/emoji/dolphin.png +0 -0
  309. data/templates/new-instance/public/images/emoji/door.png +0 -0
  310. data/templates/new-instance/public/images/emoji/doughnut.png +0 -0
  311. data/templates/new-instance/public/images/emoji/dragon.png +0 -0
  312. data/templates/new-instance/public/images/emoji/dragon_face.png +0 -0
  313. data/templates/new-instance/public/images/emoji/dress.png +0 -0
  314. data/templates/new-instance/public/images/emoji/dromedary_camel.png +0 -0
  315. data/templates/new-instance/public/images/emoji/droplet.png +0 -0
  316. data/templates/new-instance/public/images/emoji/dvd.png +0 -0
  317. data/templates/new-instance/public/images/emoji/e-mail.png +0 -0
  318. data/templates/new-instance/public/images/emoji/ear.png +0 -0
  319. data/templates/new-instance/public/images/emoji/ear_of_rice.png +0 -0
  320. data/templates/new-instance/public/images/emoji/earth_africa.png +0 -0
  321. data/templates/new-instance/public/images/emoji/earth_americas.png +0 -0
  322. data/templates/new-instance/public/images/emoji/earth_asia.png +0 -0
  323. data/templates/new-instance/public/images/emoji/egg.png +0 -0
  324. data/templates/new-instance/public/images/emoji/eggplant.png +0 -0
  325. data/templates/new-instance/public/images/emoji/eight.png +0 -0
  326. data/templates/new-instance/public/images/emoji/eight_pointed_black_star.png +0 -0
  327. data/templates/new-instance/public/images/emoji/eight_spoked_asterisk.png +0 -0
  328. data/templates/new-instance/public/images/emoji/electric_plug.png +0 -0
  329. data/templates/new-instance/public/images/emoji/elephant.png +0 -0
  330. data/templates/new-instance/public/images/emoji/email.png +0 -0
  331. data/templates/new-instance/public/images/emoji/end.png +0 -0
  332. data/templates/new-instance/public/images/emoji/envelope.png +0 -0
  333. data/templates/new-instance/public/images/emoji/envelope_with_arrow.png +0 -0
  334. data/templates/new-instance/public/images/emoji/es.png +0 -0
  335. data/templates/new-instance/public/images/emoji/euro.png +0 -0
  336. data/templates/new-instance/public/images/emoji/european_castle.png +0 -0
  337. data/templates/new-instance/public/images/emoji/european_post_office.png +0 -0
  338. data/templates/new-instance/public/images/emoji/evergreen_tree.png +0 -0
  339. data/templates/new-instance/public/images/emoji/exclamation.png +0 -0
  340. data/templates/new-instance/public/images/emoji/expressionless.png +0 -0
  341. data/templates/new-instance/public/images/emoji/eyeglasses.png +0 -0
  342. data/templates/new-instance/public/images/emoji/eyes.png +0 -0
  343. data/templates/new-instance/public/images/emoji/facepunch.png +0 -0
  344. data/templates/new-instance/public/images/emoji/factory.png +0 -0
  345. data/templates/new-instance/public/images/emoji/fallen_leaf.png +0 -0
  346. data/templates/new-instance/public/images/emoji/family.png +0 -0
  347. data/templates/new-instance/public/images/emoji/fast_forward.png +0 -0
  348. data/templates/new-instance/public/images/emoji/fax.png +0 -0
  349. data/templates/new-instance/public/images/emoji/fearful.png +0 -0
  350. data/templates/new-instance/public/images/emoji/feelsgood.png +0 -0
  351. data/templates/new-instance/public/images/emoji/feet.png +0 -0
  352. data/templates/new-instance/public/images/emoji/ferris_wheel.png +0 -0
  353. data/templates/new-instance/public/images/emoji/file_folder.png +0 -0
  354. data/templates/new-instance/public/images/emoji/finnadie.png +0 -0
  355. data/templates/new-instance/public/images/emoji/fire.png +0 -0
  356. data/templates/new-instance/public/images/emoji/fire_engine.png +0 -0
  357. data/templates/new-instance/public/images/emoji/fireworks.png +0 -0
  358. data/templates/new-instance/public/images/emoji/first_quarter_moon.png +0 -0
  359. data/templates/new-instance/public/images/emoji/first_quarter_moon_with_face.png +0 -0
  360. data/templates/new-instance/public/images/emoji/fish.png +0 -0
  361. data/templates/new-instance/public/images/emoji/fish_cake.png +0 -0
  362. data/templates/new-instance/public/images/emoji/fishing_pole_and_fish.png +0 -0
  363. data/templates/new-instance/public/images/emoji/fist.png +0 -0
  364. data/templates/new-instance/public/images/emoji/five.png +0 -0
  365. data/templates/new-instance/public/images/emoji/flags.png +0 -0
  366. data/templates/new-instance/public/images/emoji/flashlight.png +0 -0
  367. data/templates/new-instance/public/images/emoji/floppy_disk.png +0 -0
  368. data/templates/new-instance/public/images/emoji/flower_playing_cards.png +0 -0
  369. data/templates/new-instance/public/images/emoji/flushed.png +0 -0
  370. data/templates/new-instance/public/images/emoji/foggy.png +0 -0
  371. data/templates/new-instance/public/images/emoji/football.png +0 -0
  372. data/templates/new-instance/public/images/emoji/footprints.png +0 -0
  373. data/templates/new-instance/public/images/emoji/fork_and_knife.png +0 -0
  374. data/templates/new-instance/public/images/emoji/fountain.png +0 -0
  375. data/templates/new-instance/public/images/emoji/four.png +0 -0
  376. data/templates/new-instance/public/images/emoji/four_leaf_clover.png +0 -0
  377. data/templates/new-instance/public/images/emoji/fr.png +0 -0
  378. data/templates/new-instance/public/images/emoji/free.png +0 -0
  379. data/templates/new-instance/public/images/emoji/fried_shrimp.png +0 -0
  380. data/templates/new-instance/public/images/emoji/fries.png +0 -0
  381. data/templates/new-instance/public/images/emoji/frog.png +0 -0
  382. data/templates/new-instance/public/images/emoji/frowning.png +0 -0
  383. data/templates/new-instance/public/images/emoji/fu.png +0 -0
  384. data/templates/new-instance/public/images/emoji/fuelpump.png +0 -0
  385. data/templates/new-instance/public/images/emoji/full_moon.png +0 -0
  386. data/templates/new-instance/public/images/emoji/full_moon_with_face.png +0 -0
  387. data/templates/new-instance/public/images/emoji/game_die.png +0 -0
  388. data/templates/new-instance/public/images/emoji/gb.png +0 -0
  389. data/templates/new-instance/public/images/emoji/gem.png +0 -0
  390. data/templates/new-instance/public/images/emoji/gemini.png +0 -0
  391. data/templates/new-instance/public/images/emoji/ghost.png +0 -0
  392. data/templates/new-instance/public/images/emoji/gift.png +0 -0
  393. data/templates/new-instance/public/images/emoji/gift_heart.png +0 -0
  394. data/templates/new-instance/public/images/emoji/girl.png +0 -0
  395. data/templates/new-instance/public/images/emoji/globe_with_meridians.png +0 -0
  396. data/templates/new-instance/public/images/emoji/goat.png +0 -0
  397. data/templates/new-instance/public/images/emoji/goberserk.png +0 -0
  398. data/templates/new-instance/public/images/emoji/godmode.png +0 -0
  399. data/templates/new-instance/public/images/emoji/golf.png +0 -0
  400. data/templates/new-instance/public/images/emoji/grapes.png +0 -0
  401. data/templates/new-instance/public/images/emoji/green_apple.png +0 -0
  402. data/templates/new-instance/public/images/emoji/green_book.png +0 -0
  403. data/templates/new-instance/public/images/emoji/green_heart.png +0 -0
  404. data/templates/new-instance/public/images/emoji/grey_exclamation.png +0 -0
  405. data/templates/new-instance/public/images/emoji/grey_question.png +0 -0
  406. data/templates/new-instance/public/images/emoji/grimacing.png +0 -0
  407. data/templates/new-instance/public/images/emoji/grin.png +0 -0
  408. data/templates/new-instance/public/images/emoji/grinning.png +0 -0
  409. data/templates/new-instance/public/images/emoji/guardsman.png +0 -0
  410. data/templates/new-instance/public/images/emoji/guitar.png +0 -0
  411. data/templates/new-instance/public/images/emoji/gun.png +0 -0
  412. data/templates/new-instance/public/images/emoji/haircut.png +0 -0
  413. data/templates/new-instance/public/images/emoji/hamburger.png +0 -0
  414. data/templates/new-instance/public/images/emoji/hammer.png +0 -0
  415. data/templates/new-instance/public/images/emoji/hamster.png +0 -0
  416. data/templates/new-instance/public/images/emoji/hand.png +0 -0
  417. data/templates/new-instance/public/images/emoji/handbag.png +0 -0
  418. data/templates/new-instance/public/images/emoji/hankey.png +0 -0
  419. data/templates/new-instance/public/images/emoji/hash.png +0 -0
  420. data/templates/new-instance/public/images/emoji/hatched_chick.png +0 -0
  421. data/templates/new-instance/public/images/emoji/hatching_chick.png +0 -0
  422. data/templates/new-instance/public/images/emoji/headphones.png +0 -0
  423. data/templates/new-instance/public/images/emoji/hear_no_evil.png +0 -0
  424. data/templates/new-instance/public/images/emoji/heart.png +0 -0
  425. data/templates/new-instance/public/images/emoji/heart_decoration.png +0 -0
  426. data/templates/new-instance/public/images/emoji/heart_eyes.png +0 -0
  427. data/templates/new-instance/public/images/emoji/heart_eyes_cat.png +0 -0
  428. data/templates/new-instance/public/images/emoji/heartbeat.png +0 -0
  429. data/templates/new-instance/public/images/emoji/heartpulse.png +0 -0
  430. data/templates/new-instance/public/images/emoji/hearts.png +0 -0
  431. data/templates/new-instance/public/images/emoji/heavy_check_mark.png +0 -0
  432. data/templates/new-instance/public/images/emoji/heavy_division_sign.png +0 -0
  433. data/templates/new-instance/public/images/emoji/heavy_dollar_sign.png +0 -0
  434. data/templates/new-instance/public/images/emoji/heavy_exclamation_mark.png +0 -0
  435. data/templates/new-instance/public/images/emoji/heavy_minus_sign.png +0 -0
  436. data/templates/new-instance/public/images/emoji/heavy_multiplication_x.png +0 -0
  437. data/templates/new-instance/public/images/emoji/heavy_plus_sign.png +0 -0
  438. data/templates/new-instance/public/images/emoji/helicopter.png +0 -0
  439. data/templates/new-instance/public/images/emoji/herb.png +0 -0
  440. data/templates/new-instance/public/images/emoji/hibiscus.png +0 -0
  441. data/templates/new-instance/public/images/emoji/high_brightness.png +0 -0
  442. data/templates/new-instance/public/images/emoji/high_heel.png +0 -0
  443. data/templates/new-instance/public/images/emoji/hocho.png +0 -0
  444. data/templates/new-instance/public/images/emoji/honey_pot.png +0 -0
  445. data/templates/new-instance/public/images/emoji/honeybee.png +0 -0
  446. data/templates/new-instance/public/images/emoji/horse.png +0 -0
  447. data/templates/new-instance/public/images/emoji/horse_racing.png +0 -0
  448. data/templates/new-instance/public/images/emoji/hospital.png +0 -0
  449. data/templates/new-instance/public/images/emoji/hotel.png +0 -0
  450. data/templates/new-instance/public/images/emoji/hotsprings.png +0 -0
  451. data/templates/new-instance/public/images/emoji/hourglass.png +0 -0
  452. data/templates/new-instance/public/images/emoji/hourglass_flowing_sand.png +0 -0
  453. data/templates/new-instance/public/images/emoji/house.png +0 -0
  454. data/templates/new-instance/public/images/emoji/house_with_garden.png +0 -0
  455. data/templates/new-instance/public/images/emoji/hurtrealbad.png +0 -0
  456. data/templates/new-instance/public/images/emoji/hushed.png +0 -0
  457. data/templates/new-instance/public/images/emoji/ice_cream.png +0 -0
  458. data/templates/new-instance/public/images/emoji/icecream.png +0 -0
  459. data/templates/new-instance/public/images/emoji/id.png +0 -0
  460. data/templates/new-instance/public/images/emoji/ideograph_advantage.png +0 -0
  461. data/templates/new-instance/public/images/emoji/imp.png +0 -0
  462. data/templates/new-instance/public/images/emoji/inbox_tray.png +0 -0
  463. data/templates/new-instance/public/images/emoji/incoming_envelope.png +0 -0
  464. data/templates/new-instance/public/images/emoji/information_desk_person.png +0 -0
  465. data/templates/new-instance/public/images/emoji/information_source.png +0 -0
  466. data/templates/new-instance/public/images/emoji/innocent.png +0 -0
  467. data/templates/new-instance/public/images/emoji/interrobang.png +0 -0
  468. data/templates/new-instance/public/images/emoji/iphone.png +0 -0
  469. data/templates/new-instance/public/images/emoji/it.png +0 -0
  470. data/templates/new-instance/public/images/emoji/izakaya_lantern.png +0 -0
  471. data/templates/new-instance/public/images/emoji/jack_o_lantern.png +0 -0
  472. data/templates/new-instance/public/images/emoji/japan.png +0 -0
  473. data/templates/new-instance/public/images/emoji/japanese_castle.png +0 -0
  474. data/templates/new-instance/public/images/emoji/japanese_goblin.png +0 -0
  475. data/templates/new-instance/public/images/emoji/japanese_ogre.png +0 -0
  476. data/templates/new-instance/public/images/emoji/jeans.png +0 -0
  477. data/templates/new-instance/public/images/emoji/joy.png +0 -0
  478. data/templates/new-instance/public/images/emoji/joy_cat.png +0 -0
  479. data/templates/new-instance/public/images/emoji/jp.png +0 -0
  480. data/templates/new-instance/public/images/emoji/key.png +0 -0
  481. data/templates/new-instance/public/images/emoji/keycap_ten.png +0 -0
  482. data/templates/new-instance/public/images/emoji/kimono.png +0 -0
  483. data/templates/new-instance/public/images/emoji/kiss.png +0 -0
  484. data/templates/new-instance/public/images/emoji/kissing.png +0 -0
  485. data/templates/new-instance/public/images/emoji/kissing_cat.png +0 -0
  486. data/templates/new-instance/public/images/emoji/kissing_closed_eyes.png +0 -0
  487. data/templates/new-instance/public/images/emoji/kissing_heart.png +0 -0
  488. data/templates/new-instance/public/images/emoji/kissing_smiling_eyes.png +0 -0
  489. data/templates/new-instance/public/images/emoji/koala.png +0 -0
  490. data/templates/new-instance/public/images/emoji/koko.png +0 -0
  491. data/templates/new-instance/public/images/emoji/kr.png +0 -0
  492. data/templates/new-instance/public/images/emoji/lantern.png +0 -0
  493. data/templates/new-instance/public/images/emoji/large_blue_circle.png +0 -0
  494. data/templates/new-instance/public/images/emoji/large_blue_diamond.png +0 -0
  495. data/templates/new-instance/public/images/emoji/large_orange_diamond.png +0 -0
  496. data/templates/new-instance/public/images/emoji/last_quarter_moon.png +0 -0
  497. data/templates/new-instance/public/images/emoji/last_quarter_moon_with_face.png +0 -0
  498. data/templates/new-instance/public/images/emoji/laughing.png +0 -0
  499. data/templates/new-instance/public/images/emoji/leaves.png +0 -0
  500. data/templates/new-instance/public/images/emoji/ledger.png +0 -0
  501. data/templates/new-instance/public/images/emoji/left_luggage.png +0 -0
  502. data/templates/new-instance/public/images/emoji/left_right_arrow.png +0 -0
  503. data/templates/new-instance/public/images/emoji/leftwards_arrow_with_hook.png +0 -0
  504. data/templates/new-instance/public/images/emoji/lemon.png +0 -0
  505. data/templates/new-instance/public/images/emoji/leo.png +0 -0
  506. data/templates/new-instance/public/images/emoji/leopard.png +0 -0
  507. data/templates/new-instance/public/images/emoji/libra.png +0 -0
  508. data/templates/new-instance/public/images/emoji/light_rail.png +0 -0
  509. data/templates/new-instance/public/images/emoji/link.png +0 -0
  510. data/templates/new-instance/public/images/emoji/lips.png +0 -0
  511. data/templates/new-instance/public/images/emoji/lipstick.png +0 -0
  512. data/templates/new-instance/public/images/emoji/lock.png +0 -0
  513. data/templates/new-instance/public/images/emoji/lock_with_ink_pen.png +0 -0
  514. data/templates/new-instance/public/images/emoji/lollipop.png +0 -0
  515. data/templates/new-instance/public/images/emoji/loop.png +0 -0
  516. data/templates/new-instance/public/images/emoji/loudspeaker.png +0 -0
  517. data/templates/new-instance/public/images/emoji/love_hotel.png +0 -0
  518. data/templates/new-instance/public/images/emoji/love_letter.png +0 -0
  519. data/templates/new-instance/public/images/emoji/low_brightness.png +0 -0
  520. data/templates/new-instance/public/images/emoji/m.png +0 -0
  521. data/templates/new-instance/public/images/emoji/mag.png +0 -0
  522. data/templates/new-instance/public/images/emoji/mag_right.png +0 -0
  523. data/templates/new-instance/public/images/emoji/mahjong.png +0 -0
  524. data/templates/new-instance/public/images/emoji/mailbox.png +0 -0
  525. data/templates/new-instance/public/images/emoji/mailbox_closed.png +0 -0
  526. data/templates/new-instance/public/images/emoji/mailbox_with_mail.png +0 -0
  527. data/templates/new-instance/public/images/emoji/mailbox_with_no_mail.png +0 -0
  528. data/templates/new-instance/public/images/emoji/man.png +0 -0
  529. data/templates/new-instance/public/images/emoji/man_with_gua_pi_mao.png +0 -0
  530. data/templates/new-instance/public/images/emoji/man_with_turban.png +0 -0
  531. data/templates/new-instance/public/images/emoji/mans_shoe.png +0 -0
  532. data/templates/new-instance/public/images/emoji/maple_leaf.png +0 -0
  533. data/templates/new-instance/public/images/emoji/mask.png +0 -0
  534. data/templates/new-instance/public/images/emoji/massage.png +0 -0
  535. data/templates/new-instance/public/images/emoji/meat_on_bone.png +0 -0
  536. data/templates/new-instance/public/images/emoji/mega.png +0 -0
  537. data/templates/new-instance/public/images/emoji/melon.png +0 -0
  538. data/templates/new-instance/public/images/emoji/memo.png +0 -0
  539. data/templates/new-instance/public/images/emoji/mens.png +0 -0
  540. data/templates/new-instance/public/images/emoji/metal.png +0 -0
  541. data/templates/new-instance/public/images/emoji/metro.png +0 -0
  542. data/templates/new-instance/public/images/emoji/microphone.png +0 -0
  543. data/templates/new-instance/public/images/emoji/microscope.png +0 -0
  544. data/templates/new-instance/public/images/emoji/milky_way.png +0 -0
  545. data/templates/new-instance/public/images/emoji/minibus.png +0 -0
  546. data/templates/new-instance/public/images/emoji/minidisc.png +0 -0
  547. data/templates/new-instance/public/images/emoji/mobile_phone_off.png +0 -0
  548. data/templates/new-instance/public/images/emoji/money_with_wings.png +0 -0
  549. data/templates/new-instance/public/images/emoji/moneybag.png +0 -0
  550. data/templates/new-instance/public/images/emoji/monkey.png +0 -0
  551. data/templates/new-instance/public/images/emoji/monkey_face.png +0 -0
  552. data/templates/new-instance/public/images/emoji/monorail.png +0 -0
  553. data/templates/new-instance/public/images/emoji/moon.png +0 -0
  554. data/templates/new-instance/public/images/emoji/mortar_board.png +0 -0
  555. data/templates/new-instance/public/images/emoji/mount_fuji.png +0 -0
  556. data/templates/new-instance/public/images/emoji/mountain_bicyclist.png +0 -0
  557. data/templates/new-instance/public/images/emoji/mountain_cableway.png +0 -0
  558. data/templates/new-instance/public/images/emoji/mountain_railway.png +0 -0
  559. data/templates/new-instance/public/images/emoji/mouse.png +0 -0
  560. data/templates/new-instance/public/images/emoji/mouse2.png +0 -0
  561. data/templates/new-instance/public/images/emoji/movie_camera.png +0 -0
  562. data/templates/new-instance/public/images/emoji/moyai.png +0 -0
  563. data/templates/new-instance/public/images/emoji/muscle.png +0 -0
  564. data/templates/new-instance/public/images/emoji/mushroom.png +0 -0
  565. data/templates/new-instance/public/images/emoji/musical_keyboard.png +0 -0
  566. data/templates/new-instance/public/images/emoji/musical_note.png +0 -0
  567. data/templates/new-instance/public/images/emoji/musical_score.png +0 -0
  568. data/templates/new-instance/public/images/emoji/mute.png +0 -0
  569. data/templates/new-instance/public/images/emoji/nail_care.png +0 -0
  570. data/templates/new-instance/public/images/emoji/name_badge.png +0 -0
  571. data/templates/new-instance/public/images/emoji/neckbeard.png +0 -0
  572. data/templates/new-instance/public/images/emoji/necktie.png +0 -0
  573. data/templates/new-instance/public/images/emoji/negative_squared_cross_mark.png +0 -0
  574. data/templates/new-instance/public/images/emoji/neutral_face.png +0 -0
  575. data/templates/new-instance/public/images/emoji/new.png +0 -0
  576. data/templates/new-instance/public/images/emoji/new_moon.png +0 -0
  577. data/templates/new-instance/public/images/emoji/new_moon_with_face.png +0 -0
  578. data/templates/new-instance/public/images/emoji/newspaper.png +0 -0
  579. data/templates/new-instance/public/images/emoji/ng.png +0 -0
  580. data/templates/new-instance/public/images/emoji/nine.png +0 -0
  581. data/templates/new-instance/public/images/emoji/no_bell.png +0 -0
  582. data/templates/new-instance/public/images/emoji/no_bicycles.png +0 -0
  583. data/templates/new-instance/public/images/emoji/no_entry.png +0 -0
  584. data/templates/new-instance/public/images/emoji/no_entry_sign.png +0 -0
  585. data/templates/new-instance/public/images/emoji/no_good.png +0 -0
  586. data/templates/new-instance/public/images/emoji/no_mobile_phones.png +0 -0
  587. data/templates/new-instance/public/images/emoji/no_mouth.png +0 -0
  588. data/templates/new-instance/public/images/emoji/no_pedestrians.png +0 -0
  589. data/templates/new-instance/public/images/emoji/no_smoking.png +0 -0
  590. data/templates/new-instance/public/images/emoji/non-potable_water.png +0 -0
  591. data/templates/new-instance/public/images/emoji/nose.png +0 -0
  592. data/templates/new-instance/public/images/emoji/notebook.png +0 -0
  593. data/templates/new-instance/public/images/emoji/notebook_with_decorative_cover.png +0 -0
  594. data/templates/new-instance/public/images/emoji/notes.png +0 -0
  595. data/templates/new-instance/public/images/emoji/nut_and_bolt.png +0 -0
  596. data/templates/new-instance/public/images/emoji/o.png +0 -0
  597. data/templates/new-instance/public/images/emoji/o2.png +0 -0
  598. data/templates/new-instance/public/images/emoji/ocean.png +0 -0
  599. data/templates/new-instance/public/images/emoji/octocat.png +0 -0
  600. data/templates/new-instance/public/images/emoji/octopus.png +0 -0
  601. data/templates/new-instance/public/images/emoji/oden.png +0 -0
  602. data/templates/new-instance/public/images/emoji/office.png +0 -0
  603. data/templates/new-instance/public/images/emoji/ok.png +0 -0
  604. data/templates/new-instance/public/images/emoji/ok_hand.png +0 -0
  605. data/templates/new-instance/public/images/emoji/ok_woman.png +0 -0
  606. data/templates/new-instance/public/images/emoji/older_man.png +0 -0
  607. data/templates/new-instance/public/images/emoji/older_woman.png +0 -0
  608. data/templates/new-instance/public/images/emoji/on.png +0 -0
  609. data/templates/new-instance/public/images/emoji/oncoming_automobile.png +0 -0
  610. data/templates/new-instance/public/images/emoji/oncoming_bus.png +0 -0
  611. data/templates/new-instance/public/images/emoji/oncoming_police_car.png +0 -0
  612. data/templates/new-instance/public/images/emoji/oncoming_taxi.png +0 -0
  613. data/templates/new-instance/public/images/emoji/one.png +0 -0
  614. data/templates/new-instance/public/images/emoji/open_book.png +0 -0
  615. data/templates/new-instance/public/images/emoji/open_file_folder.png +0 -0
  616. data/templates/new-instance/public/images/emoji/open_hands.png +0 -0
  617. data/templates/new-instance/public/images/emoji/open_mouth.png +0 -0
  618. data/templates/new-instance/public/images/emoji/ophiuchus.png +0 -0
  619. data/templates/new-instance/public/images/emoji/orange_book.png +0 -0
  620. data/templates/new-instance/public/images/emoji/outbox_tray.png +0 -0
  621. data/templates/new-instance/public/images/emoji/ox.png +0 -0
  622. data/templates/new-instance/public/images/emoji/package.png +0 -0
  623. data/templates/new-instance/public/images/emoji/page_facing_up.png +0 -0
  624. data/templates/new-instance/public/images/emoji/page_with_curl.png +0 -0
  625. data/templates/new-instance/public/images/emoji/pager.png +0 -0
  626. data/templates/new-instance/public/images/emoji/palm_tree.png +0 -0
  627. data/templates/new-instance/public/images/emoji/panda_face.png +0 -0
  628. data/templates/new-instance/public/images/emoji/paperclip.png +0 -0
  629. data/templates/new-instance/public/images/emoji/parking.png +0 -0
  630. data/templates/new-instance/public/images/emoji/part_alternation_mark.png +0 -0
  631. data/templates/new-instance/public/images/emoji/partly_sunny.png +0 -0
  632. data/templates/new-instance/public/images/emoji/passport_control.png +0 -0
  633. data/templates/new-instance/public/images/emoji/paw_prints.png +0 -0
  634. data/templates/new-instance/public/images/emoji/peach.png +0 -0
  635. data/templates/new-instance/public/images/emoji/pear.png +0 -0
  636. data/templates/new-instance/public/images/emoji/pencil.png +0 -0
  637. data/templates/new-instance/public/images/emoji/pencil2.png +0 -0
  638. data/templates/new-instance/public/images/emoji/penguin.png +0 -0
  639. data/templates/new-instance/public/images/emoji/pensive.png +0 -0
  640. data/templates/new-instance/public/images/emoji/performing_arts.png +0 -0
  641. data/templates/new-instance/public/images/emoji/persevere.png +0 -0
  642. data/templates/new-instance/public/images/emoji/person_frowning.png +0 -0
  643. data/templates/new-instance/public/images/emoji/person_with_blond_hair.png +0 -0
  644. data/templates/new-instance/public/images/emoji/person_with_pouting_face.png +0 -0
  645. data/templates/new-instance/public/images/emoji/phone.png +0 -0
  646. data/templates/new-instance/public/images/emoji/pig.png +0 -0
  647. data/templates/new-instance/public/images/emoji/pig2.png +0 -0
  648. data/templates/new-instance/public/images/emoji/pig_nose.png +0 -0
  649. data/templates/new-instance/public/images/emoji/pill.png +0 -0
  650. data/templates/new-instance/public/images/emoji/pineapple.png +0 -0
  651. data/templates/new-instance/public/images/emoji/pisces.png +0 -0
  652. data/templates/new-instance/public/images/emoji/pizza.png +0 -0
  653. data/templates/new-instance/public/images/emoji/point_down.png +0 -0
  654. data/templates/new-instance/public/images/emoji/point_left.png +0 -0
  655. data/templates/new-instance/public/images/emoji/point_right.png +0 -0
  656. data/templates/new-instance/public/images/emoji/point_up.png +0 -0
  657. data/templates/new-instance/public/images/emoji/point_up_2.png +0 -0
  658. data/templates/new-instance/public/images/emoji/police_car.png +0 -0
  659. data/templates/new-instance/public/images/emoji/poodle.png +0 -0
  660. data/templates/new-instance/public/images/emoji/poop.png +0 -0
  661. data/templates/new-instance/public/images/emoji/post_office.png +0 -0
  662. data/templates/new-instance/public/images/emoji/postal_horn.png +0 -0
  663. data/templates/new-instance/public/images/emoji/postbox.png +0 -0
  664. data/templates/new-instance/public/images/emoji/potable_water.png +0 -0
  665. data/templates/new-instance/public/images/emoji/pouch.png +0 -0
  666. data/templates/new-instance/public/images/emoji/poultry_leg.png +0 -0
  667. data/templates/new-instance/public/images/emoji/pound.png +0 -0
  668. data/templates/new-instance/public/images/emoji/pouting_cat.png +0 -0
  669. data/templates/new-instance/public/images/emoji/pray.png +0 -0
  670. data/templates/new-instance/public/images/emoji/princess.png +0 -0
  671. data/templates/new-instance/public/images/emoji/punch.png +0 -0
  672. data/templates/new-instance/public/images/emoji/purple_heart.png +0 -0
  673. data/templates/new-instance/public/images/emoji/purse.png +0 -0
  674. data/templates/new-instance/public/images/emoji/pushpin.png +0 -0
  675. data/templates/new-instance/public/images/emoji/put_litter_in_its_place.png +0 -0
  676. data/templates/new-instance/public/images/emoji/question.png +0 -0
  677. data/templates/new-instance/public/images/emoji/rabbit.png +0 -0
  678. data/templates/new-instance/public/images/emoji/rabbit2.png +0 -0
  679. data/templates/new-instance/public/images/emoji/racehorse.png +0 -0
  680. data/templates/new-instance/public/images/emoji/radio.png +0 -0
  681. data/templates/new-instance/public/images/emoji/radio_button.png +0 -0
  682. data/templates/new-instance/public/images/emoji/rage.png +0 -0
  683. data/templates/new-instance/public/images/emoji/rage1.png +0 -0
  684. data/templates/new-instance/public/images/emoji/rage2.png +0 -0
  685. data/templates/new-instance/public/images/emoji/rage3.png +0 -0
  686. data/templates/new-instance/public/images/emoji/rage4.png +0 -0
  687. data/templates/new-instance/public/images/emoji/railway_car.png +0 -0
  688. data/templates/new-instance/public/images/emoji/rainbow.png +0 -0
  689. data/templates/new-instance/public/images/emoji/raised_hand.png +0 -0
  690. data/templates/new-instance/public/images/emoji/raised_hands.png +0 -0
  691. data/templates/new-instance/public/images/emoji/raising_hand.png +0 -0
  692. data/templates/new-instance/public/images/emoji/ram.png +0 -0
  693. data/templates/new-instance/public/images/emoji/ramen.png +0 -0
  694. data/templates/new-instance/public/images/emoji/rat.png +0 -0
  695. data/templates/new-instance/public/images/emoji/recycle.png +0 -0
  696. data/templates/new-instance/public/images/emoji/red_car.png +0 -0
  697. data/templates/new-instance/public/images/emoji/red_circle.png +0 -0
  698. data/templates/new-instance/public/images/emoji/registered.png +0 -0
  699. data/templates/new-instance/public/images/emoji/relaxed.png +0 -0
  700. data/templates/new-instance/public/images/emoji/relieved.png +0 -0
  701. data/templates/new-instance/public/images/emoji/repeat.png +0 -0
  702. data/templates/new-instance/public/images/emoji/repeat_one.png +0 -0
  703. data/templates/new-instance/public/images/emoji/restroom.png +0 -0
  704. data/templates/new-instance/public/images/emoji/revolving_hearts.png +0 -0
  705. data/templates/new-instance/public/images/emoji/rewind.png +0 -0
  706. data/templates/new-instance/public/images/emoji/ribbon.png +0 -0
  707. data/templates/new-instance/public/images/emoji/rice.png +0 -0
  708. data/templates/new-instance/public/images/emoji/rice_ball.png +0 -0
  709. data/templates/new-instance/public/images/emoji/rice_cracker.png +0 -0
  710. data/templates/new-instance/public/images/emoji/rice_scene.png +0 -0
  711. data/templates/new-instance/public/images/emoji/ring.png +0 -0
  712. data/templates/new-instance/public/images/emoji/rocket.png +0 -0
  713. data/templates/new-instance/public/images/emoji/roller_coaster.png +0 -0
  714. data/templates/new-instance/public/images/emoji/rooster.png +0 -0
  715. data/templates/new-instance/public/images/emoji/rose.png +0 -0
  716. data/templates/new-instance/public/images/emoji/rotating_light.png +0 -0
  717. data/templates/new-instance/public/images/emoji/round_pushpin.png +0 -0
  718. data/templates/new-instance/public/images/emoji/rowboat.png +0 -0
  719. data/templates/new-instance/public/images/emoji/ru.png +0 -0
  720. data/templates/new-instance/public/images/emoji/rugby_football.png +0 -0
  721. data/templates/new-instance/public/images/emoji/runner.png +0 -0
  722. data/templates/new-instance/public/images/emoji/running.png +0 -0
  723. data/templates/new-instance/public/images/emoji/running_shirt_with_sash.png +0 -0
  724. data/templates/new-instance/public/images/emoji/sa.png +0 -0
  725. data/templates/new-instance/public/images/emoji/sagittarius.png +0 -0
  726. data/templates/new-instance/public/images/emoji/sailboat.png +0 -0
  727. data/templates/new-instance/public/images/emoji/sake.png +0 -0
  728. data/templates/new-instance/public/images/emoji/sandal.png +0 -0
  729. data/templates/new-instance/public/images/emoji/santa.png +0 -0
  730. data/templates/new-instance/public/images/emoji/satellite.png +0 -0
  731. data/templates/new-instance/public/images/emoji/satisfied.png +0 -0
  732. data/templates/new-instance/public/images/emoji/saxophone.png +0 -0
  733. data/templates/new-instance/public/images/emoji/school.png +0 -0
  734. data/templates/new-instance/public/images/emoji/school_satchel.png +0 -0
  735. data/templates/new-instance/public/images/emoji/scissors.png +0 -0
  736. data/templates/new-instance/public/images/emoji/scorpius.png +0 -0
  737. data/templates/new-instance/public/images/emoji/scream.png +0 -0
  738. data/templates/new-instance/public/images/emoji/scream_cat.png +0 -0
  739. data/templates/new-instance/public/images/emoji/scroll.png +0 -0
  740. data/templates/new-instance/public/images/emoji/seat.png +0 -0
  741. data/templates/new-instance/public/images/emoji/secret.png +0 -0
  742. data/templates/new-instance/public/images/emoji/see_no_evil.png +0 -0
  743. data/templates/new-instance/public/images/emoji/seedling.png +0 -0
  744. data/templates/new-instance/public/images/emoji/seven.png +0 -0
  745. data/templates/new-instance/public/images/emoji/shaved_ice.png +0 -0
  746. data/templates/new-instance/public/images/emoji/sheep.png +0 -0
  747. data/templates/new-instance/public/images/emoji/shell.png +0 -0
  748. data/templates/new-instance/public/images/emoji/ship.png +0 -0
  749. data/templates/new-instance/public/images/emoji/shipit.png +0 -0
  750. data/templates/new-instance/public/images/emoji/shirt.png +0 -0
  751. data/templates/new-instance/public/images/emoji/shit.png +0 -0
  752. data/templates/new-instance/public/images/emoji/shoe.png +0 -0
  753. data/templates/new-instance/public/images/emoji/shower.png +0 -0
  754. data/templates/new-instance/public/images/emoji/signal_strength.png +0 -0
  755. data/templates/new-instance/public/images/emoji/six.png +0 -0
  756. data/templates/new-instance/public/images/emoji/six_pointed_star.png +0 -0
  757. data/templates/new-instance/public/images/emoji/ski.png +0 -0
  758. data/templates/new-instance/public/images/emoji/skull.png +0 -0
  759. data/templates/new-instance/public/images/emoji/sleeping.png +0 -0
  760. data/templates/new-instance/public/images/emoji/sleepy.png +0 -0
  761. data/templates/new-instance/public/images/emoji/slot_machine.png +0 -0
  762. data/templates/new-instance/public/images/emoji/small_blue_diamond.png +0 -0
  763. data/templates/new-instance/public/images/emoji/small_orange_diamond.png +0 -0
  764. data/templates/new-instance/public/images/emoji/small_red_triangle.png +0 -0
  765. data/templates/new-instance/public/images/emoji/small_red_triangle_down.png +0 -0
  766. data/templates/new-instance/public/images/emoji/smile.png +0 -0
  767. data/templates/new-instance/public/images/emoji/smile_cat.png +0 -0
  768. data/templates/new-instance/public/images/emoji/smiley.png +0 -0
  769. data/templates/new-instance/public/images/emoji/smiley_cat.png +0 -0
  770. data/templates/new-instance/public/images/emoji/smiling_imp.png +0 -0
  771. data/templates/new-instance/public/images/emoji/smirk.png +0 -0
  772. data/templates/new-instance/public/images/emoji/smirk_cat.png +0 -0
  773. data/templates/new-instance/public/images/emoji/smoking.png +0 -0
  774. data/templates/new-instance/public/images/emoji/snail.png +0 -0
  775. data/templates/new-instance/public/images/emoji/snake.png +0 -0
  776. data/templates/new-instance/public/images/emoji/snowboarder.png +0 -0
  777. data/templates/new-instance/public/images/emoji/snowflake.png +0 -0
  778. data/templates/new-instance/public/images/emoji/snowman.png +0 -0
  779. data/templates/new-instance/public/images/emoji/sob.png +0 -0
  780. data/templates/new-instance/public/images/emoji/soccer.png +0 -0
  781. data/templates/new-instance/public/images/emoji/soon.png +0 -0
  782. data/templates/new-instance/public/images/emoji/sos.png +0 -0
  783. data/templates/new-instance/public/images/emoji/sound.png +0 -0
  784. data/templates/new-instance/public/images/emoji/space_invader.png +0 -0
  785. data/templates/new-instance/public/images/emoji/spades.png +0 -0
  786. data/templates/new-instance/public/images/emoji/spaghetti.png +0 -0
  787. data/templates/new-instance/public/images/emoji/sparkle.png +0 -0
  788. data/templates/new-instance/public/images/emoji/sparkler.png +0 -0
  789. data/templates/new-instance/public/images/emoji/sparkles.png +0 -0
  790. data/templates/new-instance/public/images/emoji/sparkling_heart.png +0 -0
  791. data/templates/new-instance/public/images/emoji/speak_no_evil.png +0 -0
  792. data/templates/new-instance/public/images/emoji/speaker.png +0 -0
  793. data/templates/new-instance/public/images/emoji/speech_balloon.png +0 -0
  794. data/templates/new-instance/public/images/emoji/speedboat.png +0 -0
  795. data/templates/new-instance/public/images/emoji/squirrel.png +0 -0
  796. data/templates/new-instance/public/images/emoji/star.png +0 -0
  797. data/templates/new-instance/public/images/emoji/star2.png +0 -0
  798. data/templates/new-instance/public/images/emoji/stars.png +0 -0
  799. data/templates/new-instance/public/images/emoji/station.png +0 -0
  800. data/templates/new-instance/public/images/emoji/statue_of_liberty.png +0 -0
  801. data/templates/new-instance/public/images/emoji/steam_locomotive.png +0 -0
  802. data/templates/new-instance/public/images/emoji/stew.png +0 -0
  803. data/templates/new-instance/public/images/emoji/straight_ruler.png +0 -0
  804. data/templates/new-instance/public/images/emoji/strawberry.png +0 -0
  805. data/templates/new-instance/public/images/emoji/stuck_out_tongue.png +0 -0
  806. data/templates/new-instance/public/images/emoji/stuck_out_tongue_closed_eyes.png +0 -0
  807. data/templates/new-instance/public/images/emoji/stuck_out_tongue_winking_eye.png +0 -0
  808. data/templates/new-instance/public/images/emoji/sun_with_face.png +0 -0
  809. data/templates/new-instance/public/images/emoji/sunflower.png +0 -0
  810. data/templates/new-instance/public/images/emoji/sunglasses.png +0 -0
  811. data/templates/new-instance/public/images/emoji/sunny.png +0 -0
  812. data/templates/new-instance/public/images/emoji/sunrise.png +0 -0
  813. data/templates/new-instance/public/images/emoji/sunrise_over_mountains.png +0 -0
  814. data/templates/new-instance/public/images/emoji/surfer.png +0 -0
  815. data/templates/new-instance/public/images/emoji/sushi.png +0 -0
  816. data/templates/new-instance/public/images/emoji/suspect.png +0 -0
  817. data/templates/new-instance/public/images/emoji/suspension_railway.png +0 -0
  818. data/templates/new-instance/public/images/emoji/sweat.png +0 -0
  819. data/templates/new-instance/public/images/emoji/sweat_drops.png +0 -0
  820. data/templates/new-instance/public/images/emoji/sweat_smile.png +0 -0
  821. data/templates/new-instance/public/images/emoji/sweet_potato.png +0 -0
  822. data/templates/new-instance/public/images/emoji/swimmer.png +0 -0
  823. data/templates/new-instance/public/images/emoji/symbols.png +0 -0
  824. data/templates/new-instance/public/images/emoji/syringe.png +0 -0
  825. data/templates/new-instance/public/images/emoji/tada.png +0 -0
  826. data/templates/new-instance/public/images/emoji/tanabata_tree.png +0 -0
  827. data/templates/new-instance/public/images/emoji/tangerine.png +0 -0
  828. data/templates/new-instance/public/images/emoji/taurus.png +0 -0
  829. data/templates/new-instance/public/images/emoji/taxi.png +0 -0
  830. data/templates/new-instance/public/images/emoji/tea.png +0 -0
  831. data/templates/new-instance/public/images/emoji/telephone.png +0 -0
  832. data/templates/new-instance/public/images/emoji/telephone_receiver.png +0 -0
  833. data/templates/new-instance/public/images/emoji/telescope.png +0 -0
  834. data/templates/new-instance/public/images/emoji/tennis.png +0 -0
  835. data/templates/new-instance/public/images/emoji/tent.png +0 -0
  836. data/templates/new-instance/public/images/emoji/thought_balloon.png +0 -0
  837. data/templates/new-instance/public/images/emoji/three.png +0 -0
  838. data/templates/new-instance/public/images/emoji/thumbsdown.png +0 -0
  839. data/templates/new-instance/public/images/emoji/thumbsup.png +0 -0
  840. data/templates/new-instance/public/images/emoji/ticket.png +0 -0
  841. data/templates/new-instance/public/images/emoji/tiger.png +0 -0
  842. data/templates/new-instance/public/images/emoji/tiger2.png +0 -0
  843. data/templates/new-instance/public/images/emoji/tired_face.png +0 -0
  844. data/templates/new-instance/public/images/emoji/tm.png +0 -0
  845. data/templates/new-instance/public/images/emoji/toilet.png +0 -0
  846. data/templates/new-instance/public/images/emoji/tokyo_tower.png +0 -0
  847. data/templates/new-instance/public/images/emoji/tomato.png +0 -0
  848. data/templates/new-instance/public/images/emoji/tongue.png +0 -0
  849. data/templates/new-instance/public/images/emoji/top.png +0 -0
  850. data/templates/new-instance/public/images/emoji/tophat.png +0 -0
  851. data/templates/new-instance/public/images/emoji/tractor.png +0 -0
  852. data/templates/new-instance/public/images/emoji/traffic_light.png +0 -0
  853. data/templates/new-instance/public/images/emoji/train.png +0 -0
  854. data/templates/new-instance/public/images/emoji/train2.png +0 -0
  855. data/templates/new-instance/public/images/emoji/tram.png +0 -0
  856. data/templates/new-instance/public/images/emoji/triangular_flag_on_post.png +0 -0
  857. data/templates/new-instance/public/images/emoji/triangular_ruler.png +0 -0
  858. data/templates/new-instance/public/images/emoji/trident.png +0 -0
  859. data/templates/new-instance/public/images/emoji/triumph.png +0 -0
  860. data/templates/new-instance/public/images/emoji/trolleybus.png +0 -0
  861. data/templates/new-instance/public/images/emoji/trollface.png +0 -0
  862. data/templates/new-instance/public/images/emoji/trophy.png +0 -0
  863. data/templates/new-instance/public/images/emoji/tropical_drink.png +0 -0
  864. data/templates/new-instance/public/images/emoji/tropical_fish.png +0 -0
  865. data/templates/new-instance/public/images/emoji/truck.png +0 -0
  866. data/templates/new-instance/public/images/emoji/trumpet.png +0 -0
  867. data/templates/new-instance/public/images/emoji/tshirt.png +0 -0
  868. data/templates/new-instance/public/images/emoji/tulip.png +0 -0
  869. data/templates/new-instance/public/images/emoji/turtle.png +0 -0
  870. data/templates/new-instance/public/images/emoji/tv.png +0 -0
  871. data/templates/new-instance/public/images/emoji/twisted_rightwards_arrows.png +0 -0
  872. data/templates/new-instance/public/images/emoji/two.png +0 -0
  873. data/templates/new-instance/public/images/emoji/two_hearts.png +0 -0
  874. data/templates/new-instance/public/images/emoji/two_men_holding_hands.png +0 -0
  875. data/templates/new-instance/public/images/emoji/two_women_holding_hands.png +0 -0
  876. data/templates/new-instance/public/images/emoji/u5272.png +0 -0
  877. data/templates/new-instance/public/images/emoji/u5408.png +0 -0
  878. data/templates/new-instance/public/images/emoji/u55b6.png +0 -0
  879. data/templates/new-instance/public/images/emoji/u6307.png +0 -0
  880. data/templates/new-instance/public/images/emoji/u6708.png +0 -0
  881. data/templates/new-instance/public/images/emoji/u6709.png +0 -0
  882. data/templates/new-instance/public/images/emoji/u6e80.png +0 -0
  883. data/templates/new-instance/public/images/emoji/u7121.png +0 -0
  884. data/templates/new-instance/public/images/emoji/u7533.png +0 -0
  885. data/templates/new-instance/public/images/emoji/u7981.png +0 -0
  886. data/templates/new-instance/public/images/emoji/u7a7a.png +0 -0
  887. data/templates/new-instance/public/images/emoji/uk.png +0 -0
  888. data/templates/new-instance/public/images/emoji/umbrella.png +0 -0
  889. data/templates/new-instance/public/images/emoji/unamused.png +0 -0
  890. data/templates/new-instance/public/images/emoji/underage.png +0 -0
  891. data/templates/new-instance/public/images/emoji/unicode/0023.png +0 -0
  892. data/templates/new-instance/public/images/emoji/unicode/0030.png +0 -0
  893. data/templates/new-instance/public/images/emoji/unicode/0031.png +0 -0
  894. data/templates/new-instance/public/images/emoji/unicode/0032.png +0 -0
  895. data/templates/new-instance/public/images/emoji/unicode/0033.png +0 -0
  896. data/templates/new-instance/public/images/emoji/unicode/0034.png +0 -0
  897. data/templates/new-instance/public/images/emoji/unicode/0035.png +0 -0
  898. data/templates/new-instance/public/images/emoji/unicode/0036.png +0 -0
  899. data/templates/new-instance/public/images/emoji/unicode/0037.png +0 -0
  900. data/templates/new-instance/public/images/emoji/unicode/0038.png +0 -0
  901. data/templates/new-instance/public/images/emoji/unicode/0039.png +0 -0
  902. data/templates/new-instance/public/images/emoji/unicode/00a9.png +0 -0
  903. data/templates/new-instance/public/images/emoji/unicode/00ae.png +0 -0
  904. data/templates/new-instance/public/images/emoji/unicode/1f004.png +0 -0
  905. data/templates/new-instance/public/images/emoji/unicode/1f0cf.png +0 -0
  906. data/templates/new-instance/public/images/emoji/unicode/1f170.png +0 -0
  907. data/templates/new-instance/public/images/emoji/unicode/1f171.png +0 -0
  908. data/templates/new-instance/public/images/emoji/unicode/1f17e.png +0 -0
  909. data/templates/new-instance/public/images/emoji/unicode/1f17f.png +0 -0
  910. data/templates/new-instance/public/images/emoji/unicode/1f18e.png +0 -0
  911. data/templates/new-instance/public/images/emoji/unicode/1f191.png +0 -0
  912. data/templates/new-instance/public/images/emoji/unicode/1f192.png +0 -0
  913. data/templates/new-instance/public/images/emoji/unicode/1f193.png +0 -0
  914. data/templates/new-instance/public/images/emoji/unicode/1f194.png +0 -0
  915. data/templates/new-instance/public/images/emoji/unicode/1f195.png +0 -0
  916. data/templates/new-instance/public/images/emoji/unicode/1f196.png +0 -0
  917. data/templates/new-instance/public/images/emoji/unicode/1f197.png +0 -0
  918. data/templates/new-instance/public/images/emoji/unicode/1f198.png +0 -0
  919. data/templates/new-instance/public/images/emoji/unicode/1f199.png +0 -0
  920. data/templates/new-instance/public/images/emoji/unicode/1f19a.png +0 -0
  921. data/templates/new-instance/public/images/emoji/unicode/1f1e8-1f1f3.png +0 -0
  922. data/templates/new-instance/public/images/emoji/unicode/1f1e9-1f1ea.png +0 -0
  923. data/templates/new-instance/public/images/emoji/unicode/1f1ea-1f1f8.png +0 -0
  924. data/templates/new-instance/public/images/emoji/unicode/1f1eb-1f1f7.png +0 -0
  925. data/templates/new-instance/public/images/emoji/unicode/1f1ec-1f1e7.png +0 -0
  926. data/templates/new-instance/public/images/emoji/unicode/1f1ee-1f1f9.png +0 -0
  927. data/templates/new-instance/public/images/emoji/unicode/1f1ef-1f1f5.png +0 -0
  928. data/templates/new-instance/public/images/emoji/unicode/1f1f0-1f1f7.png +0 -0
  929. data/templates/new-instance/public/images/emoji/unicode/1f1f7-1f1fa.png +0 -0
  930. data/templates/new-instance/public/images/emoji/unicode/1f1fa-1f1f8.png +0 -0
  931. data/templates/new-instance/public/images/emoji/unicode/1f201.png +0 -0
  932. data/templates/new-instance/public/images/emoji/unicode/1f202.png +0 -0
  933. data/templates/new-instance/public/images/emoji/unicode/1f21a.png +0 -0
  934. data/templates/new-instance/public/images/emoji/unicode/1f22f.png +0 -0
  935. data/templates/new-instance/public/images/emoji/unicode/1f232.png +0 -0
  936. data/templates/new-instance/public/images/emoji/unicode/1f233.png +0 -0
  937. data/templates/new-instance/public/images/emoji/unicode/1f234.png +0 -0
  938. data/templates/new-instance/public/images/emoji/unicode/1f235.png +0 -0
  939. data/templates/new-instance/public/images/emoji/unicode/1f236.png +0 -0
  940. data/templates/new-instance/public/images/emoji/unicode/1f237.png +0 -0
  941. data/templates/new-instance/public/images/emoji/unicode/1f238.png +0 -0
  942. data/templates/new-instance/public/images/emoji/unicode/1f239.png +0 -0
  943. data/templates/new-instance/public/images/emoji/unicode/1f23a.png +0 -0
  944. data/templates/new-instance/public/images/emoji/unicode/1f250.png +0 -0
  945. data/templates/new-instance/public/images/emoji/unicode/1f251.png +0 -0
  946. data/templates/new-instance/public/images/emoji/unicode/1f300.png +0 -0
  947. data/templates/new-instance/public/images/emoji/unicode/1f301.png +0 -0
  948. data/templates/new-instance/public/images/emoji/unicode/1f302.png +0 -0
  949. data/templates/new-instance/public/images/emoji/unicode/1f303.png +0 -0
  950. data/templates/new-instance/public/images/emoji/unicode/1f304.png +0 -0
  951. data/templates/new-instance/public/images/emoji/unicode/1f305.png +0 -0
  952. data/templates/new-instance/public/images/emoji/unicode/1f306.png +0 -0
  953. data/templates/new-instance/public/images/emoji/unicode/1f307.png +0 -0
  954. data/templates/new-instance/public/images/emoji/unicode/1f308.png +0 -0
  955. data/templates/new-instance/public/images/emoji/unicode/1f309.png +0 -0
  956. data/templates/new-instance/public/images/emoji/unicode/1f30a.png +0 -0
  957. data/templates/new-instance/public/images/emoji/unicode/1f30b.png +0 -0
  958. data/templates/new-instance/public/images/emoji/unicode/1f30c.png +0 -0
  959. data/templates/new-instance/public/images/emoji/unicode/1f30d.png +0 -0
  960. data/templates/new-instance/public/images/emoji/unicode/1f30e.png +0 -0
  961. data/templates/new-instance/public/images/emoji/unicode/1f30f.png +0 -0
  962. data/templates/new-instance/public/images/emoji/unicode/1f310.png +0 -0
  963. data/templates/new-instance/public/images/emoji/unicode/1f311.png +0 -0
  964. data/templates/new-instance/public/images/emoji/unicode/1f312.png +0 -0
  965. data/templates/new-instance/public/images/emoji/unicode/1f313.png +0 -0
  966. data/templates/new-instance/public/images/emoji/unicode/1f314.png +0 -0
  967. data/templates/new-instance/public/images/emoji/unicode/1f315.png +0 -0
  968. data/templates/new-instance/public/images/emoji/unicode/1f316.png +0 -0
  969. data/templates/new-instance/public/images/emoji/unicode/1f317.png +0 -0
  970. data/templates/new-instance/public/images/emoji/unicode/1f318.png +0 -0
  971. data/templates/new-instance/public/images/emoji/unicode/1f319.png +0 -0
  972. data/templates/new-instance/public/images/emoji/unicode/1f31a.png +0 -0
  973. data/templates/new-instance/public/images/emoji/unicode/1f31b.png +0 -0
  974. data/templates/new-instance/public/images/emoji/unicode/1f31c.png +0 -0
  975. data/templates/new-instance/public/images/emoji/unicode/1f31d.png +0 -0
  976. data/templates/new-instance/public/images/emoji/unicode/1f31e.png +0 -0
  977. data/templates/new-instance/public/images/emoji/unicode/1f31f.png +0 -0
  978. data/templates/new-instance/public/images/emoji/unicode/1f330.png +0 -0
  979. data/templates/new-instance/public/images/emoji/unicode/1f331.png +0 -0
  980. data/templates/new-instance/public/images/emoji/unicode/1f332.png +0 -0
  981. data/templates/new-instance/public/images/emoji/unicode/1f333.png +0 -0
  982. data/templates/new-instance/public/images/emoji/unicode/1f334.png +0 -0
  983. data/templates/new-instance/public/images/emoji/unicode/1f335.png +0 -0
  984. data/templates/new-instance/public/images/emoji/unicode/1f337.png +0 -0
  985. data/templates/new-instance/public/images/emoji/unicode/1f338.png +0 -0
  986. data/templates/new-instance/public/images/emoji/unicode/1f339.png +0 -0
  987. data/templates/new-instance/public/images/emoji/unicode/1f33a.png +0 -0
  988. data/templates/new-instance/public/images/emoji/unicode/1f33b.png +0 -0
  989. data/templates/new-instance/public/images/emoji/unicode/1f33c.png +0 -0
  990. data/templates/new-instance/public/images/emoji/unicode/1f33d.png +0 -0
  991. data/templates/new-instance/public/images/emoji/unicode/1f33e.png +0 -0
  992. data/templates/new-instance/public/images/emoji/unicode/1f33f.png +0 -0
  993. data/templates/new-instance/public/images/emoji/unicode/1f340.png +0 -0
  994. data/templates/new-instance/public/images/emoji/unicode/1f341.png +0 -0
  995. data/templates/new-instance/public/images/emoji/unicode/1f342.png +0 -0
  996. data/templates/new-instance/public/images/emoji/unicode/1f343.png +0 -0
  997. data/templates/new-instance/public/images/emoji/unicode/1f344.png +0 -0
  998. data/templates/new-instance/public/images/emoji/unicode/1f345.png +0 -0
  999. data/templates/new-instance/public/images/emoji/unicode/1f346.png +0 -0
  1000. data/templates/new-instance/public/images/emoji/unicode/1f347.png +0 -0
  1001. data/templates/new-instance/public/images/emoji/unicode/1f348.png +0 -0
  1002. data/templates/new-instance/public/images/emoji/unicode/1f349.png +0 -0
  1003. data/templates/new-instance/public/images/emoji/unicode/1f34a.png +0 -0
  1004. data/templates/new-instance/public/images/emoji/unicode/1f34b.png +0 -0
  1005. data/templates/new-instance/public/images/emoji/unicode/1f34c.png +0 -0
  1006. data/templates/new-instance/public/images/emoji/unicode/1f34d.png +0 -0
  1007. data/templates/new-instance/public/images/emoji/unicode/1f34e.png +0 -0
  1008. data/templates/new-instance/public/images/emoji/unicode/1f34f.png +0 -0
  1009. data/templates/new-instance/public/images/emoji/unicode/1f350.png +0 -0
  1010. data/templates/new-instance/public/images/emoji/unicode/1f351.png +0 -0
  1011. data/templates/new-instance/public/images/emoji/unicode/1f352.png +0 -0
  1012. data/templates/new-instance/public/images/emoji/unicode/1f353.png +0 -0
  1013. data/templates/new-instance/public/images/emoji/unicode/1f354.png +0 -0
  1014. data/templates/new-instance/public/images/emoji/unicode/1f355.png +0 -0
  1015. data/templates/new-instance/public/images/emoji/unicode/1f356.png +0 -0
  1016. data/templates/new-instance/public/images/emoji/unicode/1f357.png +0 -0
  1017. data/templates/new-instance/public/images/emoji/unicode/1f358.png +0 -0
  1018. data/templates/new-instance/public/images/emoji/unicode/1f359.png +0 -0
  1019. data/templates/new-instance/public/images/emoji/unicode/1f35a.png +0 -0
  1020. data/templates/new-instance/public/images/emoji/unicode/1f35b.png +0 -0
  1021. data/templates/new-instance/public/images/emoji/unicode/1f35c.png +0 -0
  1022. data/templates/new-instance/public/images/emoji/unicode/1f35d.png +0 -0
  1023. data/templates/new-instance/public/images/emoji/unicode/1f35e.png +0 -0
  1024. data/templates/new-instance/public/images/emoji/unicode/1f35f.png +0 -0
  1025. data/templates/new-instance/public/images/emoji/unicode/1f360.png +0 -0
  1026. data/templates/new-instance/public/images/emoji/unicode/1f361.png +0 -0
  1027. data/templates/new-instance/public/images/emoji/unicode/1f362.png +0 -0
  1028. data/templates/new-instance/public/images/emoji/unicode/1f363.png +0 -0
  1029. data/templates/new-instance/public/images/emoji/unicode/1f364.png +0 -0
  1030. data/templates/new-instance/public/images/emoji/unicode/1f365.png +0 -0
  1031. data/templates/new-instance/public/images/emoji/unicode/1f366.png +0 -0
  1032. data/templates/new-instance/public/images/emoji/unicode/1f367.png +0 -0
  1033. data/templates/new-instance/public/images/emoji/unicode/1f368.png +0 -0
  1034. data/templates/new-instance/public/images/emoji/unicode/1f369.png +0 -0
  1035. data/templates/new-instance/public/images/emoji/unicode/1f36a.png +0 -0
  1036. data/templates/new-instance/public/images/emoji/unicode/1f36b.png +0 -0
  1037. data/templates/new-instance/public/images/emoji/unicode/1f36c.png +0 -0
  1038. data/templates/new-instance/public/images/emoji/unicode/1f36d.png +0 -0
  1039. data/templates/new-instance/public/images/emoji/unicode/1f36e.png +0 -0
  1040. data/templates/new-instance/public/images/emoji/unicode/1f36f.png +0 -0
  1041. data/templates/new-instance/public/images/emoji/unicode/1f370.png +0 -0
  1042. data/templates/new-instance/public/images/emoji/unicode/1f371.png +0 -0
  1043. data/templates/new-instance/public/images/emoji/unicode/1f372.png +0 -0
  1044. data/templates/new-instance/public/images/emoji/unicode/1f373.png +0 -0
  1045. data/templates/new-instance/public/images/emoji/unicode/1f374.png +0 -0
  1046. data/templates/new-instance/public/images/emoji/unicode/1f375.png +0 -0
  1047. data/templates/new-instance/public/images/emoji/unicode/1f376.png +0 -0
  1048. data/templates/new-instance/public/images/emoji/unicode/1f377.png +0 -0
  1049. data/templates/new-instance/public/images/emoji/unicode/1f378.png +0 -0
  1050. data/templates/new-instance/public/images/emoji/unicode/1f379.png +0 -0
  1051. data/templates/new-instance/public/images/emoji/unicode/1f37a.png +0 -0
  1052. data/templates/new-instance/public/images/emoji/unicode/1f37b.png +0 -0
  1053. data/templates/new-instance/public/images/emoji/unicode/1f37c.png +0 -0
  1054. data/templates/new-instance/public/images/emoji/unicode/1f380.png +0 -0
  1055. data/templates/new-instance/public/images/emoji/unicode/1f381.png +0 -0
  1056. data/templates/new-instance/public/images/emoji/unicode/1f382.png +0 -0
  1057. data/templates/new-instance/public/images/emoji/unicode/1f383.png +0 -0
  1058. data/templates/new-instance/public/images/emoji/unicode/1f384.png +0 -0
  1059. data/templates/new-instance/public/images/emoji/unicode/1f385.png +0 -0
  1060. data/templates/new-instance/public/images/emoji/unicode/1f386.png +0 -0
  1061. data/templates/new-instance/public/images/emoji/unicode/1f387.png +0 -0
  1062. data/templates/new-instance/public/images/emoji/unicode/1f388.png +0 -0
  1063. data/templates/new-instance/public/images/emoji/unicode/1f389.png +0 -0
  1064. data/templates/new-instance/public/images/emoji/unicode/1f38a.png +0 -0
  1065. data/templates/new-instance/public/images/emoji/unicode/1f38b.png +0 -0
  1066. data/templates/new-instance/public/images/emoji/unicode/1f38c.png +0 -0
  1067. data/templates/new-instance/public/images/emoji/unicode/1f38d.png +0 -0
  1068. data/templates/new-instance/public/images/emoji/unicode/1f38e.png +0 -0
  1069. data/templates/new-instance/public/images/emoji/unicode/1f38f.png +0 -0
  1070. data/templates/new-instance/public/images/emoji/unicode/1f390.png +0 -0
  1071. data/templates/new-instance/public/images/emoji/unicode/1f391.png +0 -0
  1072. data/templates/new-instance/public/images/emoji/unicode/1f392.png +0 -0
  1073. data/templates/new-instance/public/images/emoji/unicode/1f393.png +0 -0
  1074. data/templates/new-instance/public/images/emoji/unicode/1f3a0.png +0 -0
  1075. data/templates/new-instance/public/images/emoji/unicode/1f3a1.png +0 -0
  1076. data/templates/new-instance/public/images/emoji/unicode/1f3a2.png +0 -0
  1077. data/templates/new-instance/public/images/emoji/unicode/1f3a3.png +0 -0
  1078. data/templates/new-instance/public/images/emoji/unicode/1f3a4.png +0 -0
  1079. data/templates/new-instance/public/images/emoji/unicode/1f3a5.png +0 -0
  1080. data/templates/new-instance/public/images/emoji/unicode/1f3a6.png +0 -0
  1081. data/templates/new-instance/public/images/emoji/unicode/1f3a7.png +0 -0
  1082. data/templates/new-instance/public/images/emoji/unicode/1f3a8.png +0 -0
  1083. data/templates/new-instance/public/images/emoji/unicode/1f3a9.png +0 -0
  1084. data/templates/new-instance/public/images/emoji/unicode/1f3aa.png +0 -0
  1085. data/templates/new-instance/public/images/emoji/unicode/1f3ab.png +0 -0
  1086. data/templates/new-instance/public/images/emoji/unicode/1f3ac.png +0 -0
  1087. data/templates/new-instance/public/images/emoji/unicode/1f3ad.png +0 -0
  1088. data/templates/new-instance/public/images/emoji/unicode/1f3ae.png +0 -0
  1089. data/templates/new-instance/public/images/emoji/unicode/1f3af.png +0 -0
  1090. data/templates/new-instance/public/images/emoji/unicode/1f3b0.png +0 -0
  1091. data/templates/new-instance/public/images/emoji/unicode/1f3b1.png +0 -0
  1092. data/templates/new-instance/public/images/emoji/unicode/1f3b2.png +0 -0
  1093. data/templates/new-instance/public/images/emoji/unicode/1f3b3.png +0 -0
  1094. data/templates/new-instance/public/images/emoji/unicode/1f3b4.png +0 -0
  1095. data/templates/new-instance/public/images/emoji/unicode/1f3b5.png +0 -0
  1096. data/templates/new-instance/public/images/emoji/unicode/1f3b6.png +0 -0
  1097. data/templates/new-instance/public/images/emoji/unicode/1f3b7.png +0 -0
  1098. data/templates/new-instance/public/images/emoji/unicode/1f3b8.png +0 -0
  1099. data/templates/new-instance/public/images/emoji/unicode/1f3b9.png +0 -0
  1100. data/templates/new-instance/public/images/emoji/unicode/1f3ba.png +0 -0
  1101. data/templates/new-instance/public/images/emoji/unicode/1f3bb.png +0 -0
  1102. data/templates/new-instance/public/images/emoji/unicode/1f3bc.png +0 -0
  1103. data/templates/new-instance/public/images/emoji/unicode/1f3bd.png +0 -0
  1104. data/templates/new-instance/public/images/emoji/unicode/1f3be.png +0 -0
  1105. data/templates/new-instance/public/images/emoji/unicode/1f3bf.png +0 -0
  1106. data/templates/new-instance/public/images/emoji/unicode/1f3c0.png +0 -0
  1107. data/templates/new-instance/public/images/emoji/unicode/1f3c1.png +0 -0
  1108. data/templates/new-instance/public/images/emoji/unicode/1f3c2.png +0 -0
  1109. data/templates/new-instance/public/images/emoji/unicode/1f3c3.png +0 -0
  1110. data/templates/new-instance/public/images/emoji/unicode/1f3c4.png +0 -0
  1111. data/templates/new-instance/public/images/emoji/unicode/1f3c6.png +0 -0
  1112. data/templates/new-instance/public/images/emoji/unicode/1f3c7.png +0 -0
  1113. data/templates/new-instance/public/images/emoji/unicode/1f3c8.png +0 -0
  1114. data/templates/new-instance/public/images/emoji/unicode/1f3c9.png +0 -0
  1115. data/templates/new-instance/public/images/emoji/unicode/1f3ca.png +0 -0
  1116. data/templates/new-instance/public/images/emoji/unicode/1f3e0.png +0 -0
  1117. data/templates/new-instance/public/images/emoji/unicode/1f3e1.png +0 -0
  1118. data/templates/new-instance/public/images/emoji/unicode/1f3e2.png +0 -0
  1119. data/templates/new-instance/public/images/emoji/unicode/1f3e3.png +0 -0
  1120. data/templates/new-instance/public/images/emoji/unicode/1f3e4.png +0 -0
  1121. data/templates/new-instance/public/images/emoji/unicode/1f3e5.png +0 -0
  1122. data/templates/new-instance/public/images/emoji/unicode/1f3e6.png +0 -0
  1123. data/templates/new-instance/public/images/emoji/unicode/1f3e7.png +0 -0
  1124. data/templates/new-instance/public/images/emoji/unicode/1f3e8.png +0 -0
  1125. data/templates/new-instance/public/images/emoji/unicode/1f3e9.png +0 -0
  1126. data/templates/new-instance/public/images/emoji/unicode/1f3ea.png +0 -0
  1127. data/templates/new-instance/public/images/emoji/unicode/1f3eb.png +0 -0
  1128. data/templates/new-instance/public/images/emoji/unicode/1f3ec.png +0 -0
  1129. data/templates/new-instance/public/images/emoji/unicode/1f3ed.png +0 -0
  1130. data/templates/new-instance/public/images/emoji/unicode/1f3ee.png +0 -0
  1131. data/templates/new-instance/public/images/emoji/unicode/1f3ef.png +0 -0
  1132. data/templates/new-instance/public/images/emoji/unicode/1f3f0.png +0 -0
  1133. data/templates/new-instance/public/images/emoji/unicode/1f400.png +0 -0
  1134. data/templates/new-instance/public/images/emoji/unicode/1f401.png +0 -0
  1135. data/templates/new-instance/public/images/emoji/unicode/1f402.png +0 -0
  1136. data/templates/new-instance/public/images/emoji/unicode/1f403.png +0 -0
  1137. data/templates/new-instance/public/images/emoji/unicode/1f404.png +0 -0
  1138. data/templates/new-instance/public/images/emoji/unicode/1f405.png +0 -0
  1139. data/templates/new-instance/public/images/emoji/unicode/1f406.png +0 -0
  1140. data/templates/new-instance/public/images/emoji/unicode/1f407.png +0 -0
  1141. data/templates/new-instance/public/images/emoji/unicode/1f408.png +0 -0
  1142. data/templates/new-instance/public/images/emoji/unicode/1f409.png +0 -0
  1143. data/templates/new-instance/public/images/emoji/unicode/1f40a.png +0 -0
  1144. data/templates/new-instance/public/images/emoji/unicode/1f40b.png +0 -0
  1145. data/templates/new-instance/public/images/emoji/unicode/1f40c.png +0 -0
  1146. data/templates/new-instance/public/images/emoji/unicode/1f40d.png +0 -0
  1147. data/templates/new-instance/public/images/emoji/unicode/1f40e.png +0 -0
  1148. data/templates/new-instance/public/images/emoji/unicode/1f40f.png +0 -0
  1149. data/templates/new-instance/public/images/emoji/unicode/1f410.png +0 -0
  1150. data/templates/new-instance/public/images/emoji/unicode/1f411.png +0 -0
  1151. data/templates/new-instance/public/images/emoji/unicode/1f412.png +0 -0
  1152. data/templates/new-instance/public/images/emoji/unicode/1f413.png +0 -0
  1153. data/templates/new-instance/public/images/emoji/unicode/1f414.png +0 -0
  1154. data/templates/new-instance/public/images/emoji/unicode/1f415.png +0 -0
  1155. data/templates/new-instance/public/images/emoji/unicode/1f416.png +0 -0
  1156. data/templates/new-instance/public/images/emoji/unicode/1f417.png +0 -0
  1157. data/templates/new-instance/public/images/emoji/unicode/1f418.png +0 -0
  1158. data/templates/new-instance/public/images/emoji/unicode/1f419.png +0 -0
  1159. data/templates/new-instance/public/images/emoji/unicode/1f41a.png +0 -0
  1160. data/templates/new-instance/public/images/emoji/unicode/1f41b.png +0 -0
  1161. data/templates/new-instance/public/images/emoji/unicode/1f41c.png +0 -0
  1162. data/templates/new-instance/public/images/emoji/unicode/1f41d.png +0 -0
  1163. data/templates/new-instance/public/images/emoji/unicode/1f41e.png +0 -0
  1164. data/templates/new-instance/public/images/emoji/unicode/1f41f.png +0 -0
  1165. data/templates/new-instance/public/images/emoji/unicode/1f420.png +0 -0
  1166. data/templates/new-instance/public/images/emoji/unicode/1f421.png +0 -0
  1167. data/templates/new-instance/public/images/emoji/unicode/1f422.png +0 -0
  1168. data/templates/new-instance/public/images/emoji/unicode/1f423.png +0 -0
  1169. data/templates/new-instance/public/images/emoji/unicode/1f424.png +0 -0
  1170. data/templates/new-instance/public/images/emoji/unicode/1f425.png +0 -0
  1171. data/templates/new-instance/public/images/emoji/unicode/1f426.png +0 -0
  1172. data/templates/new-instance/public/images/emoji/unicode/1f427.png +0 -0
  1173. data/templates/new-instance/public/images/emoji/unicode/1f428.png +0 -0
  1174. data/templates/new-instance/public/images/emoji/unicode/1f429.png +0 -0
  1175. data/templates/new-instance/public/images/emoji/unicode/1f42a.png +0 -0
  1176. data/templates/new-instance/public/images/emoji/unicode/1f42b.png +0 -0
  1177. data/templates/new-instance/public/images/emoji/unicode/1f42c.png +0 -0
  1178. data/templates/new-instance/public/images/emoji/unicode/1f42d.png +0 -0
  1179. data/templates/new-instance/public/images/emoji/unicode/1f42e.png +0 -0
  1180. data/templates/new-instance/public/images/emoji/unicode/1f42f.png +0 -0
  1181. data/templates/new-instance/public/images/emoji/unicode/1f430.png +0 -0
  1182. data/templates/new-instance/public/images/emoji/unicode/1f431.png +0 -0
  1183. data/templates/new-instance/public/images/emoji/unicode/1f432.png +0 -0
  1184. data/templates/new-instance/public/images/emoji/unicode/1f433.png +0 -0
  1185. data/templates/new-instance/public/images/emoji/unicode/1f434.png +0 -0
  1186. data/templates/new-instance/public/images/emoji/unicode/1f435.png +0 -0
  1187. data/templates/new-instance/public/images/emoji/unicode/1f436.png +0 -0
  1188. data/templates/new-instance/public/images/emoji/unicode/1f437.png +0 -0
  1189. data/templates/new-instance/public/images/emoji/unicode/1f438.png +0 -0
  1190. data/templates/new-instance/public/images/emoji/unicode/1f439.png +0 -0
  1191. data/templates/new-instance/public/images/emoji/unicode/1f43a.png +0 -0
  1192. data/templates/new-instance/public/images/emoji/unicode/1f43b.png +0 -0
  1193. data/templates/new-instance/public/images/emoji/unicode/1f43c.png +0 -0
  1194. data/templates/new-instance/public/images/emoji/unicode/1f43d.png +0 -0
  1195. data/templates/new-instance/public/images/emoji/unicode/1f43e.png +0 -0
  1196. data/templates/new-instance/public/images/emoji/unicode/1f440.png +0 -0
  1197. data/templates/new-instance/public/images/emoji/unicode/1f442.png +0 -0
  1198. data/templates/new-instance/public/images/emoji/unicode/1f443.png +0 -0
  1199. data/templates/new-instance/public/images/emoji/unicode/1f444.png +0 -0
  1200. data/templates/new-instance/public/images/emoji/unicode/1f445.png +0 -0
  1201. data/templates/new-instance/public/images/emoji/unicode/1f446.png +0 -0
  1202. data/templates/new-instance/public/images/emoji/unicode/1f447.png +0 -0
  1203. data/templates/new-instance/public/images/emoji/unicode/1f448.png +0 -0
  1204. data/templates/new-instance/public/images/emoji/unicode/1f449.png +0 -0
  1205. data/templates/new-instance/public/images/emoji/unicode/1f44a.png +0 -0
  1206. data/templates/new-instance/public/images/emoji/unicode/1f44b.png +0 -0
  1207. data/templates/new-instance/public/images/emoji/unicode/1f44c.png +0 -0
  1208. data/templates/new-instance/public/images/emoji/unicode/1f44d.png +0 -0
  1209. data/templates/new-instance/public/images/emoji/unicode/1f44e.png +0 -0
  1210. data/templates/new-instance/public/images/emoji/unicode/1f44f.png +0 -0
  1211. data/templates/new-instance/public/images/emoji/unicode/1f450.png +0 -0
  1212. data/templates/new-instance/public/images/emoji/unicode/1f451.png +0 -0
  1213. data/templates/new-instance/public/images/emoji/unicode/1f452.png +0 -0
  1214. data/templates/new-instance/public/images/emoji/unicode/1f453.png +0 -0
  1215. data/templates/new-instance/public/images/emoji/unicode/1f454.png +0 -0
  1216. data/templates/new-instance/public/images/emoji/unicode/1f455.png +0 -0
  1217. data/templates/new-instance/public/images/emoji/unicode/1f456.png +0 -0
  1218. data/templates/new-instance/public/images/emoji/unicode/1f457.png +0 -0
  1219. data/templates/new-instance/public/images/emoji/unicode/1f458.png +0 -0
  1220. data/templates/new-instance/public/images/emoji/unicode/1f459.png +0 -0
  1221. data/templates/new-instance/public/images/emoji/unicode/1f45a.png +0 -0
  1222. data/templates/new-instance/public/images/emoji/unicode/1f45b.png +0 -0
  1223. data/templates/new-instance/public/images/emoji/unicode/1f45c.png +0 -0
  1224. data/templates/new-instance/public/images/emoji/unicode/1f45d.png +0 -0
  1225. data/templates/new-instance/public/images/emoji/unicode/1f45e.png +0 -0
  1226. data/templates/new-instance/public/images/emoji/unicode/1f45f.png +0 -0
  1227. data/templates/new-instance/public/images/emoji/unicode/1f460.png +0 -0
  1228. data/templates/new-instance/public/images/emoji/unicode/1f461.png +0 -0
  1229. data/templates/new-instance/public/images/emoji/unicode/1f462.png +0 -0
  1230. data/templates/new-instance/public/images/emoji/unicode/1f463.png +0 -0
  1231. data/templates/new-instance/public/images/emoji/unicode/1f464.png +0 -0
  1232. data/templates/new-instance/public/images/emoji/unicode/1f465.png +0 -0
  1233. data/templates/new-instance/public/images/emoji/unicode/1f466.png +0 -0
  1234. data/templates/new-instance/public/images/emoji/unicode/1f467.png +0 -0
  1235. data/templates/new-instance/public/images/emoji/unicode/1f468.png +0 -0
  1236. data/templates/new-instance/public/images/emoji/unicode/1f469.png +0 -0
  1237. data/templates/new-instance/public/images/emoji/unicode/1f46a.png +0 -0
  1238. data/templates/new-instance/public/images/emoji/unicode/1f46b.png +0 -0
  1239. data/templates/new-instance/public/images/emoji/unicode/1f46c.png +0 -0
  1240. data/templates/new-instance/public/images/emoji/unicode/1f46d.png +0 -0
  1241. data/templates/new-instance/public/images/emoji/unicode/1f46e.png +0 -0
  1242. data/templates/new-instance/public/images/emoji/unicode/1f46f.png +0 -0
  1243. data/templates/new-instance/public/images/emoji/unicode/1f470.png +0 -0
  1244. data/templates/new-instance/public/images/emoji/unicode/1f471.png +0 -0
  1245. data/templates/new-instance/public/images/emoji/unicode/1f472.png +0 -0
  1246. data/templates/new-instance/public/images/emoji/unicode/1f473.png +0 -0
  1247. data/templates/new-instance/public/images/emoji/unicode/1f474.png +0 -0
  1248. data/templates/new-instance/public/images/emoji/unicode/1f475.png +0 -0
  1249. data/templates/new-instance/public/images/emoji/unicode/1f476.png +0 -0
  1250. data/templates/new-instance/public/images/emoji/unicode/1f477.png +0 -0
  1251. data/templates/new-instance/public/images/emoji/unicode/1f478.png +0 -0
  1252. data/templates/new-instance/public/images/emoji/unicode/1f479.png +0 -0
  1253. data/templates/new-instance/public/images/emoji/unicode/1f47a.png +0 -0
  1254. data/templates/new-instance/public/images/emoji/unicode/1f47b.png +0 -0
  1255. data/templates/new-instance/public/images/emoji/unicode/1f47c.png +0 -0
  1256. data/templates/new-instance/public/images/emoji/unicode/1f47d.png +0 -0
  1257. data/templates/new-instance/public/images/emoji/unicode/1f47e.png +0 -0
  1258. data/templates/new-instance/public/images/emoji/unicode/1f47f.png +0 -0
  1259. data/templates/new-instance/public/images/emoji/unicode/1f480.png +0 -0
  1260. data/templates/new-instance/public/images/emoji/unicode/1f481.png +0 -0
  1261. data/templates/new-instance/public/images/emoji/unicode/1f482.png +0 -0
  1262. data/templates/new-instance/public/images/emoji/unicode/1f483.png +0 -0
  1263. data/templates/new-instance/public/images/emoji/unicode/1f484.png +0 -0
  1264. data/templates/new-instance/public/images/emoji/unicode/1f485.png +0 -0
  1265. data/templates/new-instance/public/images/emoji/unicode/1f486.png +0 -0
  1266. data/templates/new-instance/public/images/emoji/unicode/1f487.png +0 -0
  1267. data/templates/new-instance/public/images/emoji/unicode/1f488.png +0 -0
  1268. data/templates/new-instance/public/images/emoji/unicode/1f489.png +0 -0
  1269. data/templates/new-instance/public/images/emoji/unicode/1f48a.png +0 -0
  1270. data/templates/new-instance/public/images/emoji/unicode/1f48b.png +0 -0
  1271. data/templates/new-instance/public/images/emoji/unicode/1f48c.png +0 -0
  1272. data/templates/new-instance/public/images/emoji/unicode/1f48d.png +0 -0
  1273. data/templates/new-instance/public/images/emoji/unicode/1f48e.png +0 -0
  1274. data/templates/new-instance/public/images/emoji/unicode/1f48f.png +0 -0
  1275. data/templates/new-instance/public/images/emoji/unicode/1f490.png +0 -0
  1276. data/templates/new-instance/public/images/emoji/unicode/1f491.png +0 -0
  1277. data/templates/new-instance/public/images/emoji/unicode/1f492.png +0 -0
  1278. data/templates/new-instance/public/images/emoji/unicode/1f493.png +0 -0
  1279. data/templates/new-instance/public/images/emoji/unicode/1f494.png +0 -0
  1280. data/templates/new-instance/public/images/emoji/unicode/1f495.png +0 -0
  1281. data/templates/new-instance/public/images/emoji/unicode/1f496.png +0 -0
  1282. data/templates/new-instance/public/images/emoji/unicode/1f497.png +0 -0
  1283. data/templates/new-instance/public/images/emoji/unicode/1f498.png +0 -0
  1284. data/templates/new-instance/public/images/emoji/unicode/1f499.png +0 -0
  1285. data/templates/new-instance/public/images/emoji/unicode/1f49a.png +0 -0
  1286. data/templates/new-instance/public/images/emoji/unicode/1f49b.png +0 -0
  1287. data/templates/new-instance/public/images/emoji/unicode/1f49c.png +0 -0
  1288. data/templates/new-instance/public/images/emoji/unicode/1f49d.png +0 -0
  1289. data/templates/new-instance/public/images/emoji/unicode/1f49e.png +0 -0
  1290. data/templates/new-instance/public/images/emoji/unicode/1f49f.png +0 -0
  1291. data/templates/new-instance/public/images/emoji/unicode/1f4a0.png +0 -0
  1292. data/templates/new-instance/public/images/emoji/unicode/1f4a1.png +0 -0
  1293. data/templates/new-instance/public/images/emoji/unicode/1f4a2.png +0 -0
  1294. data/templates/new-instance/public/images/emoji/unicode/1f4a3.png +0 -0
  1295. data/templates/new-instance/public/images/emoji/unicode/1f4a4.png +0 -0
  1296. data/templates/new-instance/public/images/emoji/unicode/1f4a5.png +0 -0
  1297. data/templates/new-instance/public/images/emoji/unicode/1f4a6.png +0 -0
  1298. data/templates/new-instance/public/images/emoji/unicode/1f4a7.png +0 -0
  1299. data/templates/new-instance/public/images/emoji/unicode/1f4a8.png +0 -0
  1300. data/templates/new-instance/public/images/emoji/unicode/1f4a9.png +0 -0
  1301. data/templates/new-instance/public/images/emoji/unicode/1f4aa.png +0 -0
  1302. data/templates/new-instance/public/images/emoji/unicode/1f4ab.png +0 -0
  1303. data/templates/new-instance/public/images/emoji/unicode/1f4ac.png +0 -0
  1304. data/templates/new-instance/public/images/emoji/unicode/1f4ad.png +0 -0
  1305. data/templates/new-instance/public/images/emoji/unicode/1f4ae.png +0 -0
  1306. data/templates/new-instance/public/images/emoji/unicode/1f4af.png +0 -0
  1307. data/templates/new-instance/public/images/emoji/unicode/1f4b0.png +0 -0
  1308. data/templates/new-instance/public/images/emoji/unicode/1f4b1.png +0 -0
  1309. data/templates/new-instance/public/images/emoji/unicode/1f4b2.png +0 -0
  1310. data/templates/new-instance/public/images/emoji/unicode/1f4b3.png +0 -0
  1311. data/templates/new-instance/public/images/emoji/unicode/1f4b4.png +0 -0
  1312. data/templates/new-instance/public/images/emoji/unicode/1f4b5.png +0 -0
  1313. data/templates/new-instance/public/images/emoji/unicode/1f4b6.png +0 -0
  1314. data/templates/new-instance/public/images/emoji/unicode/1f4b7.png +0 -0
  1315. data/templates/new-instance/public/images/emoji/unicode/1f4b8.png +0 -0
  1316. data/templates/new-instance/public/images/emoji/unicode/1f4b9.png +0 -0
  1317. data/templates/new-instance/public/images/emoji/unicode/1f4ba.png +0 -0
  1318. data/templates/new-instance/public/images/emoji/unicode/1f4bb.png +0 -0
  1319. data/templates/new-instance/public/images/emoji/unicode/1f4bc.png +0 -0
  1320. data/templates/new-instance/public/images/emoji/unicode/1f4bd.png +0 -0
  1321. data/templates/new-instance/public/images/emoji/unicode/1f4be.png +0 -0
  1322. data/templates/new-instance/public/images/emoji/unicode/1f4bf.png +0 -0
  1323. data/templates/new-instance/public/images/emoji/unicode/1f4c0.png +0 -0
  1324. data/templates/new-instance/public/images/emoji/unicode/1f4c1.png +0 -0
  1325. data/templates/new-instance/public/images/emoji/unicode/1f4c2.png +0 -0
  1326. data/templates/new-instance/public/images/emoji/unicode/1f4c3.png +0 -0
  1327. data/templates/new-instance/public/images/emoji/unicode/1f4c4.png +0 -0
  1328. data/templates/new-instance/public/images/emoji/unicode/1f4c5.png +0 -0
  1329. data/templates/new-instance/public/images/emoji/unicode/1f4c6.png +0 -0
  1330. data/templates/new-instance/public/images/emoji/unicode/1f4c7.png +0 -0
  1331. data/templates/new-instance/public/images/emoji/unicode/1f4c8.png +0 -0
  1332. data/templates/new-instance/public/images/emoji/unicode/1f4c9.png +0 -0
  1333. data/templates/new-instance/public/images/emoji/unicode/1f4ca.png +0 -0
  1334. data/templates/new-instance/public/images/emoji/unicode/1f4cb.png +0 -0
  1335. data/templates/new-instance/public/images/emoji/unicode/1f4cc.png +0 -0
  1336. data/templates/new-instance/public/images/emoji/unicode/1f4cd.png +0 -0
  1337. data/templates/new-instance/public/images/emoji/unicode/1f4ce.png +0 -0
  1338. data/templates/new-instance/public/images/emoji/unicode/1f4cf.png +0 -0
  1339. data/templates/new-instance/public/images/emoji/unicode/1f4d0.png +0 -0
  1340. data/templates/new-instance/public/images/emoji/unicode/1f4d1.png +0 -0
  1341. data/templates/new-instance/public/images/emoji/unicode/1f4d2.png +0 -0
  1342. data/templates/new-instance/public/images/emoji/unicode/1f4d3.png +0 -0
  1343. data/templates/new-instance/public/images/emoji/unicode/1f4d4.png +0 -0
  1344. data/templates/new-instance/public/images/emoji/unicode/1f4d5.png +0 -0
  1345. data/templates/new-instance/public/images/emoji/unicode/1f4d6.png +0 -0
  1346. data/templates/new-instance/public/images/emoji/unicode/1f4d7.png +0 -0
  1347. data/templates/new-instance/public/images/emoji/unicode/1f4d8.png +0 -0
  1348. data/templates/new-instance/public/images/emoji/unicode/1f4d9.png +0 -0
  1349. data/templates/new-instance/public/images/emoji/unicode/1f4da.png +0 -0
  1350. data/templates/new-instance/public/images/emoji/unicode/1f4db.png +0 -0
  1351. data/templates/new-instance/public/images/emoji/unicode/1f4dc.png +0 -0
  1352. data/templates/new-instance/public/images/emoji/unicode/1f4dd.png +0 -0
  1353. data/templates/new-instance/public/images/emoji/unicode/1f4de.png +0 -0
  1354. data/templates/new-instance/public/images/emoji/unicode/1f4df.png +0 -0
  1355. data/templates/new-instance/public/images/emoji/unicode/1f4e0.png +0 -0
  1356. data/templates/new-instance/public/images/emoji/unicode/1f4e1.png +0 -0
  1357. data/templates/new-instance/public/images/emoji/unicode/1f4e2.png +0 -0
  1358. data/templates/new-instance/public/images/emoji/unicode/1f4e3.png +0 -0
  1359. data/templates/new-instance/public/images/emoji/unicode/1f4e4.png +0 -0
  1360. data/templates/new-instance/public/images/emoji/unicode/1f4e5.png +0 -0
  1361. data/templates/new-instance/public/images/emoji/unicode/1f4e6.png +0 -0
  1362. data/templates/new-instance/public/images/emoji/unicode/1f4e7.png +0 -0
  1363. data/templates/new-instance/public/images/emoji/unicode/1f4e8.png +0 -0
  1364. data/templates/new-instance/public/images/emoji/unicode/1f4e9.png +0 -0
  1365. data/templates/new-instance/public/images/emoji/unicode/1f4ea.png +0 -0
  1366. data/templates/new-instance/public/images/emoji/unicode/1f4eb.png +0 -0
  1367. data/templates/new-instance/public/images/emoji/unicode/1f4ec.png +0 -0
  1368. data/templates/new-instance/public/images/emoji/unicode/1f4ed.png +0 -0
  1369. data/templates/new-instance/public/images/emoji/unicode/1f4ee.png +0 -0
  1370. data/templates/new-instance/public/images/emoji/unicode/1f4ef.png +0 -0
  1371. data/templates/new-instance/public/images/emoji/unicode/1f4f0.png +0 -0
  1372. data/templates/new-instance/public/images/emoji/unicode/1f4f1.png +0 -0
  1373. data/templates/new-instance/public/images/emoji/unicode/1f4f2.png +0 -0
  1374. data/templates/new-instance/public/images/emoji/unicode/1f4f3.png +0 -0
  1375. data/templates/new-instance/public/images/emoji/unicode/1f4f4.png +0 -0
  1376. data/templates/new-instance/public/images/emoji/unicode/1f4f5.png +0 -0
  1377. data/templates/new-instance/public/images/emoji/unicode/1f4f6.png +0 -0
  1378. data/templates/new-instance/public/images/emoji/unicode/1f4f7.png +0 -0
  1379. data/templates/new-instance/public/images/emoji/unicode/1f4f9.png +0 -0
  1380. data/templates/new-instance/public/images/emoji/unicode/1f4fa.png +0 -0
  1381. data/templates/new-instance/public/images/emoji/unicode/1f4fb.png +0 -0
  1382. data/templates/new-instance/public/images/emoji/unicode/1f4fc.png +0 -0
  1383. data/templates/new-instance/public/images/emoji/unicode/1f500.png +0 -0
  1384. data/templates/new-instance/public/images/emoji/unicode/1f501.png +0 -0
  1385. data/templates/new-instance/public/images/emoji/unicode/1f502.png +0 -0
  1386. data/templates/new-instance/public/images/emoji/unicode/1f503.png +0 -0
  1387. data/templates/new-instance/public/images/emoji/unicode/1f504.png +0 -0
  1388. data/templates/new-instance/public/images/emoji/unicode/1f505.png +0 -0
  1389. data/templates/new-instance/public/images/emoji/unicode/1f506.png +0 -0
  1390. data/templates/new-instance/public/images/emoji/unicode/1f507.png +0 -0
  1391. data/templates/new-instance/public/images/emoji/unicode/1f509.png +0 -0
  1392. data/templates/new-instance/public/images/emoji/unicode/1f50a.png +0 -0
  1393. data/templates/new-instance/public/images/emoji/unicode/1f50b.png +0 -0
  1394. data/templates/new-instance/public/images/emoji/unicode/1f50c.png +0 -0
  1395. data/templates/new-instance/public/images/emoji/unicode/1f50d.png +0 -0
  1396. data/templates/new-instance/public/images/emoji/unicode/1f50e.png +0 -0
  1397. data/templates/new-instance/public/images/emoji/unicode/1f50f.png +0 -0
  1398. data/templates/new-instance/public/images/emoji/unicode/1f510.png +0 -0
  1399. data/templates/new-instance/public/images/emoji/unicode/1f511.png +0 -0
  1400. data/templates/new-instance/public/images/emoji/unicode/1f512.png +0 -0
  1401. data/templates/new-instance/public/images/emoji/unicode/1f513.png +0 -0
  1402. data/templates/new-instance/public/images/emoji/unicode/1f514.png +0 -0
  1403. data/templates/new-instance/public/images/emoji/unicode/1f515.png +0 -0
  1404. data/templates/new-instance/public/images/emoji/unicode/1f516.png +0 -0
  1405. data/templates/new-instance/public/images/emoji/unicode/1f517.png +0 -0
  1406. data/templates/new-instance/public/images/emoji/unicode/1f518.png +0 -0
  1407. data/templates/new-instance/public/images/emoji/unicode/1f519.png +0 -0
  1408. data/templates/new-instance/public/images/emoji/unicode/1f51a.png +0 -0
  1409. data/templates/new-instance/public/images/emoji/unicode/1f51b.png +0 -0
  1410. data/templates/new-instance/public/images/emoji/unicode/1f51c.png +0 -0
  1411. data/templates/new-instance/public/images/emoji/unicode/1f51d.png +0 -0
  1412. data/templates/new-instance/public/images/emoji/unicode/1f51e.png +0 -0
  1413. data/templates/new-instance/public/images/emoji/unicode/1f51f.png +0 -0
  1414. data/templates/new-instance/public/images/emoji/unicode/1f520.png +0 -0
  1415. data/templates/new-instance/public/images/emoji/unicode/1f521.png +0 -0
  1416. data/templates/new-instance/public/images/emoji/unicode/1f522.png +0 -0
  1417. data/templates/new-instance/public/images/emoji/unicode/1f523.png +0 -0
  1418. data/templates/new-instance/public/images/emoji/unicode/1f524.png +0 -0
  1419. data/templates/new-instance/public/images/emoji/unicode/1f525.png +0 -0
  1420. data/templates/new-instance/public/images/emoji/unicode/1f526.png +0 -0
  1421. data/templates/new-instance/public/images/emoji/unicode/1f527.png +0 -0
  1422. data/templates/new-instance/public/images/emoji/unicode/1f528.png +0 -0
  1423. data/templates/new-instance/public/images/emoji/unicode/1f529.png +0 -0
  1424. data/templates/new-instance/public/images/emoji/unicode/1f52a.png +0 -0
  1425. data/templates/new-instance/public/images/emoji/unicode/1f52b.png +0 -0
  1426. data/templates/new-instance/public/images/emoji/unicode/1f52c.png +0 -0
  1427. data/templates/new-instance/public/images/emoji/unicode/1f52d.png +0 -0
  1428. data/templates/new-instance/public/images/emoji/unicode/1f52e.png +0 -0
  1429. data/templates/new-instance/public/images/emoji/unicode/1f52f.png +0 -0
  1430. data/templates/new-instance/public/images/emoji/unicode/1f530.png +0 -0
  1431. data/templates/new-instance/public/images/emoji/unicode/1f531.png +0 -0
  1432. data/templates/new-instance/public/images/emoji/unicode/1f532.png +0 -0
  1433. data/templates/new-instance/public/images/emoji/unicode/1f533.png +0 -0
  1434. data/templates/new-instance/public/images/emoji/unicode/1f534.png +0 -0
  1435. data/templates/new-instance/public/images/emoji/unicode/1f535.png +0 -0
  1436. data/templates/new-instance/public/images/emoji/unicode/1f536.png +0 -0
  1437. data/templates/new-instance/public/images/emoji/unicode/1f537.png +0 -0
  1438. data/templates/new-instance/public/images/emoji/unicode/1f538.png +0 -0
  1439. data/templates/new-instance/public/images/emoji/unicode/1f539.png +0 -0
  1440. data/templates/new-instance/public/images/emoji/unicode/1f53a.png +0 -0
  1441. data/templates/new-instance/public/images/emoji/unicode/1f53b.png +0 -0
  1442. data/templates/new-instance/public/images/emoji/unicode/1f53c.png +0 -0
  1443. data/templates/new-instance/public/images/emoji/unicode/1f53d.png +0 -0
  1444. data/templates/new-instance/public/images/emoji/unicode/1f550.png +0 -0
  1445. data/templates/new-instance/public/images/emoji/unicode/1f551.png +0 -0
  1446. data/templates/new-instance/public/images/emoji/unicode/1f552.png +0 -0
  1447. data/templates/new-instance/public/images/emoji/unicode/1f553.png +0 -0
  1448. data/templates/new-instance/public/images/emoji/unicode/1f554.png +0 -0
  1449. data/templates/new-instance/public/images/emoji/unicode/1f555.png +0 -0
  1450. data/templates/new-instance/public/images/emoji/unicode/1f556.png +0 -0
  1451. data/templates/new-instance/public/images/emoji/unicode/1f557.png +0 -0
  1452. data/templates/new-instance/public/images/emoji/unicode/1f558.png +0 -0
  1453. data/templates/new-instance/public/images/emoji/unicode/1f559.png +0 -0
  1454. data/templates/new-instance/public/images/emoji/unicode/1f55a.png +0 -0
  1455. data/templates/new-instance/public/images/emoji/unicode/1f55b.png +0 -0
  1456. data/templates/new-instance/public/images/emoji/unicode/1f55c.png +0 -0
  1457. data/templates/new-instance/public/images/emoji/unicode/1f55d.png +0 -0
  1458. data/templates/new-instance/public/images/emoji/unicode/1f55e.png +0 -0
  1459. data/templates/new-instance/public/images/emoji/unicode/1f55f.png +0 -0
  1460. data/templates/new-instance/public/images/emoji/unicode/1f560.png +0 -0
  1461. data/templates/new-instance/public/images/emoji/unicode/1f561.png +0 -0
  1462. data/templates/new-instance/public/images/emoji/unicode/1f562.png +0 -0
  1463. data/templates/new-instance/public/images/emoji/unicode/1f563.png +0 -0
  1464. data/templates/new-instance/public/images/emoji/unicode/1f564.png +0 -0
  1465. data/templates/new-instance/public/images/emoji/unicode/1f565.png +0 -0
  1466. data/templates/new-instance/public/images/emoji/unicode/1f566.png +0 -0
  1467. data/templates/new-instance/public/images/emoji/unicode/1f567.png +0 -0
  1468. data/templates/new-instance/public/images/emoji/unicode/1f5fb.png +0 -0
  1469. data/templates/new-instance/public/images/emoji/unicode/1f5fc.png +0 -0
  1470. data/templates/new-instance/public/images/emoji/unicode/1f5fd.png +0 -0
  1471. data/templates/new-instance/public/images/emoji/unicode/1f5fe.png +0 -0
  1472. data/templates/new-instance/public/images/emoji/unicode/1f5ff.png +0 -0
  1473. data/templates/new-instance/public/images/emoji/unicode/1f600.png +0 -0
  1474. data/templates/new-instance/public/images/emoji/unicode/1f601.png +0 -0
  1475. data/templates/new-instance/public/images/emoji/unicode/1f602.png +0 -0
  1476. data/templates/new-instance/public/images/emoji/unicode/1f603.png +0 -0
  1477. data/templates/new-instance/public/images/emoji/unicode/1f604.png +0 -0
  1478. data/templates/new-instance/public/images/emoji/unicode/1f605.png +0 -0
  1479. data/templates/new-instance/public/images/emoji/unicode/1f606.png +0 -0
  1480. data/templates/new-instance/public/images/emoji/unicode/1f607.png +0 -0
  1481. data/templates/new-instance/public/images/emoji/unicode/1f608.png +0 -0
  1482. data/templates/new-instance/public/images/emoji/unicode/1f609.png +0 -0
  1483. data/templates/new-instance/public/images/emoji/unicode/1f60a.png +0 -0
  1484. data/templates/new-instance/public/images/emoji/unicode/1f60b.png +0 -0
  1485. data/templates/new-instance/public/images/emoji/unicode/1f60c.png +0 -0
  1486. data/templates/new-instance/public/images/emoji/unicode/1f60d.png +0 -0
  1487. data/templates/new-instance/public/images/emoji/unicode/1f60e.png +0 -0
  1488. data/templates/new-instance/public/images/emoji/unicode/1f60f.png +0 -0
  1489. data/templates/new-instance/public/images/emoji/unicode/1f610.png +0 -0
  1490. data/templates/new-instance/public/images/emoji/unicode/1f611.png +0 -0
  1491. data/templates/new-instance/public/images/emoji/unicode/1f612.png +0 -0
  1492. data/templates/new-instance/public/images/emoji/unicode/1f613.png +0 -0
  1493. data/templates/new-instance/public/images/emoji/unicode/1f614.png +0 -0
  1494. data/templates/new-instance/public/images/emoji/unicode/1f615.png +0 -0
  1495. data/templates/new-instance/public/images/emoji/unicode/1f616.png +0 -0
  1496. data/templates/new-instance/public/images/emoji/unicode/1f617.png +0 -0
  1497. data/templates/new-instance/public/images/emoji/unicode/1f618.png +0 -0
  1498. data/templates/new-instance/public/images/emoji/unicode/1f619.png +0 -0
  1499. data/templates/new-instance/public/images/emoji/unicode/1f61a.png +0 -0
  1500. data/templates/new-instance/public/images/emoji/unicode/1f61b.png +0 -0
  1501. data/templates/new-instance/public/images/emoji/unicode/1f61c.png +0 -0
  1502. data/templates/new-instance/public/images/emoji/unicode/1f61d.png +0 -0
  1503. data/templates/new-instance/public/images/emoji/unicode/1f61e.png +0 -0
  1504. data/templates/new-instance/public/images/emoji/unicode/1f61f.png +0 -0
  1505. data/templates/new-instance/public/images/emoji/unicode/1f620.png +0 -0
  1506. data/templates/new-instance/public/images/emoji/unicode/1f621.png +0 -0
  1507. data/templates/new-instance/public/images/emoji/unicode/1f622.png +0 -0
  1508. data/templates/new-instance/public/images/emoji/unicode/1f623.png +0 -0
  1509. data/templates/new-instance/public/images/emoji/unicode/1f624.png +0 -0
  1510. data/templates/new-instance/public/images/emoji/unicode/1f625.png +0 -0
  1511. data/templates/new-instance/public/images/emoji/unicode/1f626.png +0 -0
  1512. data/templates/new-instance/public/images/emoji/unicode/1f627.png +0 -0
  1513. data/templates/new-instance/public/images/emoji/unicode/1f628.png +0 -0
  1514. data/templates/new-instance/public/images/emoji/unicode/1f629.png +0 -0
  1515. data/templates/new-instance/public/images/emoji/unicode/1f62a.png +0 -0
  1516. data/templates/new-instance/public/images/emoji/unicode/1f62b.png +0 -0
  1517. data/templates/new-instance/public/images/emoji/unicode/1f62c.png +0 -0
  1518. data/templates/new-instance/public/images/emoji/unicode/1f62d.png +0 -0
  1519. data/templates/new-instance/public/images/emoji/unicode/1f62e.png +0 -0
  1520. data/templates/new-instance/public/images/emoji/unicode/1f62f.png +0 -0
  1521. data/templates/new-instance/public/images/emoji/unicode/1f630.png +0 -0
  1522. data/templates/new-instance/public/images/emoji/unicode/1f631.png +0 -0
  1523. data/templates/new-instance/public/images/emoji/unicode/1f632.png +0 -0
  1524. data/templates/new-instance/public/images/emoji/unicode/1f633.png +0 -0
  1525. data/templates/new-instance/public/images/emoji/unicode/1f634.png +0 -0
  1526. data/templates/new-instance/public/images/emoji/unicode/1f635.png +0 -0
  1527. data/templates/new-instance/public/images/emoji/unicode/1f636.png +0 -0
  1528. data/templates/new-instance/public/images/emoji/unicode/1f637.png +0 -0
  1529. data/templates/new-instance/public/images/emoji/unicode/1f638.png +0 -0
  1530. data/templates/new-instance/public/images/emoji/unicode/1f639.png +0 -0
  1531. data/templates/new-instance/public/images/emoji/unicode/1f63a.png +0 -0
  1532. data/templates/new-instance/public/images/emoji/unicode/1f63b.png +0 -0
  1533. data/templates/new-instance/public/images/emoji/unicode/1f63c.png +0 -0
  1534. data/templates/new-instance/public/images/emoji/unicode/1f63d.png +0 -0
  1535. data/templates/new-instance/public/images/emoji/unicode/1f63e.png +0 -0
  1536. data/templates/new-instance/public/images/emoji/unicode/1f63f.png +0 -0
  1537. data/templates/new-instance/public/images/emoji/unicode/1f640.png +0 -0
  1538. data/templates/new-instance/public/images/emoji/unicode/1f645.png +0 -0
  1539. data/templates/new-instance/public/images/emoji/unicode/1f646.png +0 -0
  1540. data/templates/new-instance/public/images/emoji/unicode/1f647.png +0 -0
  1541. data/templates/new-instance/public/images/emoji/unicode/1f648.png +0 -0
  1542. data/templates/new-instance/public/images/emoji/unicode/1f649.png +0 -0
  1543. data/templates/new-instance/public/images/emoji/unicode/1f64a.png +0 -0
  1544. data/templates/new-instance/public/images/emoji/unicode/1f64b.png +0 -0
  1545. data/templates/new-instance/public/images/emoji/unicode/1f64c.png +0 -0
  1546. data/templates/new-instance/public/images/emoji/unicode/1f64d.png +0 -0
  1547. data/templates/new-instance/public/images/emoji/unicode/1f64e.png +0 -0
  1548. data/templates/new-instance/public/images/emoji/unicode/1f64f.png +0 -0
  1549. data/templates/new-instance/public/images/emoji/unicode/1f680.png +0 -0
  1550. data/templates/new-instance/public/images/emoji/unicode/1f681.png +0 -0
  1551. data/templates/new-instance/public/images/emoji/unicode/1f682.png +0 -0
  1552. data/templates/new-instance/public/images/emoji/unicode/1f683.png +0 -0
  1553. data/templates/new-instance/public/images/emoji/unicode/1f684.png +0 -0
  1554. data/templates/new-instance/public/images/emoji/unicode/1f685.png +0 -0
  1555. data/templates/new-instance/public/images/emoji/unicode/1f686.png +0 -0
  1556. data/templates/new-instance/public/images/emoji/unicode/1f687.png +0 -0
  1557. data/templates/new-instance/public/images/emoji/unicode/1f688.png +0 -0
  1558. data/templates/new-instance/public/images/emoji/unicode/1f689.png +0 -0
  1559. data/templates/new-instance/public/images/emoji/unicode/1f68a.png +0 -0
  1560. data/templates/new-instance/public/images/emoji/unicode/1f68c.png +0 -0
  1561. data/templates/new-instance/public/images/emoji/unicode/1f68d.png +0 -0
  1562. data/templates/new-instance/public/images/emoji/unicode/1f68e.png +0 -0
  1563. data/templates/new-instance/public/images/emoji/unicode/1f68f.png +0 -0
  1564. data/templates/new-instance/public/images/emoji/unicode/1f690.png +0 -0
  1565. data/templates/new-instance/public/images/emoji/unicode/1f691.png +0 -0
  1566. data/templates/new-instance/public/images/emoji/unicode/1f692.png +0 -0
  1567. data/templates/new-instance/public/images/emoji/unicode/1f693.png +0 -0
  1568. data/templates/new-instance/public/images/emoji/unicode/1f694.png +0 -0
  1569. data/templates/new-instance/public/images/emoji/unicode/1f695.png +0 -0
  1570. data/templates/new-instance/public/images/emoji/unicode/1f696.png +0 -0
  1571. data/templates/new-instance/public/images/emoji/unicode/1f697.png +0 -0
  1572. data/templates/new-instance/public/images/emoji/unicode/1f698.png +0 -0
  1573. data/templates/new-instance/public/images/emoji/unicode/1f699.png +0 -0
  1574. data/templates/new-instance/public/images/emoji/unicode/1f69a.png +0 -0
  1575. data/templates/new-instance/public/images/emoji/unicode/1f69b.png +0 -0
  1576. data/templates/new-instance/public/images/emoji/unicode/1f69c.png +0 -0
  1577. data/templates/new-instance/public/images/emoji/unicode/1f69d.png +0 -0
  1578. data/templates/new-instance/public/images/emoji/unicode/1f69e.png +0 -0
  1579. data/templates/new-instance/public/images/emoji/unicode/1f69f.png +0 -0
  1580. data/templates/new-instance/public/images/emoji/unicode/1f6a0.png +0 -0
  1581. data/templates/new-instance/public/images/emoji/unicode/1f6a1.png +0 -0
  1582. data/templates/new-instance/public/images/emoji/unicode/1f6a2.png +0 -0
  1583. data/templates/new-instance/public/images/emoji/unicode/1f6a3.png +0 -0
  1584. data/templates/new-instance/public/images/emoji/unicode/1f6a4.png +0 -0
  1585. data/templates/new-instance/public/images/emoji/unicode/1f6a5.png +0 -0
  1586. data/templates/new-instance/public/images/emoji/unicode/1f6a6.png +0 -0
  1587. data/templates/new-instance/public/images/emoji/unicode/1f6a7.png +0 -0
  1588. data/templates/new-instance/public/images/emoji/unicode/1f6a8.png +0 -0
  1589. data/templates/new-instance/public/images/emoji/unicode/1f6a9.png +0 -0
  1590. data/templates/new-instance/public/images/emoji/unicode/1f6aa.png +0 -0
  1591. data/templates/new-instance/public/images/emoji/unicode/1f6ab.png +0 -0
  1592. data/templates/new-instance/public/images/emoji/unicode/1f6ac.png +0 -0
  1593. data/templates/new-instance/public/images/emoji/unicode/1f6ad.png +0 -0
  1594. data/templates/new-instance/public/images/emoji/unicode/1f6ae.png +0 -0
  1595. data/templates/new-instance/public/images/emoji/unicode/1f6af.png +0 -0
  1596. data/templates/new-instance/public/images/emoji/unicode/1f6b0.png +0 -0
  1597. data/templates/new-instance/public/images/emoji/unicode/1f6b1.png +0 -0
  1598. data/templates/new-instance/public/images/emoji/unicode/1f6b2.png +0 -0
  1599. data/templates/new-instance/public/images/emoji/unicode/1f6b3.png +0 -0
  1600. data/templates/new-instance/public/images/emoji/unicode/1f6b4.png +0 -0
  1601. data/templates/new-instance/public/images/emoji/unicode/1f6b5.png +0 -0
  1602. data/templates/new-instance/public/images/emoji/unicode/1f6b6.png +0 -0
  1603. data/templates/new-instance/public/images/emoji/unicode/1f6b7.png +0 -0
  1604. data/templates/new-instance/public/images/emoji/unicode/1f6b8.png +0 -0
  1605. data/templates/new-instance/public/images/emoji/unicode/1f6b9.png +0 -0
  1606. data/templates/new-instance/public/images/emoji/unicode/1f6ba.png +0 -0
  1607. data/templates/new-instance/public/images/emoji/unicode/1f6bb.png +0 -0
  1608. data/templates/new-instance/public/images/emoji/unicode/1f6bc.png +0 -0
  1609. data/templates/new-instance/public/images/emoji/unicode/1f6bd.png +0 -0
  1610. data/templates/new-instance/public/images/emoji/unicode/1f6be.png +0 -0
  1611. data/templates/new-instance/public/images/emoji/unicode/1f6bf.png +0 -0
  1612. data/templates/new-instance/public/images/emoji/unicode/1f6c0.png +0 -0
  1613. data/templates/new-instance/public/images/emoji/unicode/1f6c1.png +0 -0
  1614. data/templates/new-instance/public/images/emoji/unicode/1f6c2.png +0 -0
  1615. data/templates/new-instance/public/images/emoji/unicode/1f6c3.png +0 -0
  1616. data/templates/new-instance/public/images/emoji/unicode/1f6c4.png +0 -0
  1617. data/templates/new-instance/public/images/emoji/unicode/1f6c5.png +0 -0
  1618. data/templates/new-instance/public/images/emoji/unicode/203c.png +0 -0
  1619. data/templates/new-instance/public/images/emoji/unicode/2049.png +0 -0
  1620. data/templates/new-instance/public/images/emoji/unicode/2122.png +0 -0
  1621. data/templates/new-instance/public/images/emoji/unicode/2139.png +0 -0
  1622. data/templates/new-instance/public/images/emoji/unicode/2194.png +0 -0
  1623. data/templates/new-instance/public/images/emoji/unicode/2195.png +0 -0
  1624. data/templates/new-instance/public/images/emoji/unicode/2196.png +0 -0
  1625. data/templates/new-instance/public/images/emoji/unicode/2197.png +0 -0
  1626. data/templates/new-instance/public/images/emoji/unicode/2198.png +0 -0
  1627. data/templates/new-instance/public/images/emoji/unicode/2199.png +0 -0
  1628. data/templates/new-instance/public/images/emoji/unicode/21a9.png +0 -0
  1629. data/templates/new-instance/public/images/emoji/unicode/21aa.png +0 -0
  1630. data/templates/new-instance/public/images/emoji/unicode/231a.png +0 -0
  1631. data/templates/new-instance/public/images/emoji/unicode/231b.png +0 -0
  1632. data/templates/new-instance/public/images/emoji/unicode/23e9.png +0 -0
  1633. data/templates/new-instance/public/images/emoji/unicode/23ea.png +0 -0
  1634. data/templates/new-instance/public/images/emoji/unicode/23eb.png +0 -0
  1635. data/templates/new-instance/public/images/emoji/unicode/23ec.png +0 -0
  1636. data/templates/new-instance/public/images/emoji/unicode/23f0.png +0 -0
  1637. data/templates/new-instance/public/images/emoji/unicode/23f3.png +0 -0
  1638. data/templates/new-instance/public/images/emoji/unicode/24c2.png +0 -0
  1639. data/templates/new-instance/public/images/emoji/unicode/25aa.png +0 -0
  1640. data/templates/new-instance/public/images/emoji/unicode/25ab.png +0 -0
  1641. data/templates/new-instance/public/images/emoji/unicode/25b6.png +0 -0
  1642. data/templates/new-instance/public/images/emoji/unicode/25c0.png +0 -0
  1643. data/templates/new-instance/public/images/emoji/unicode/25fb.png +0 -0
  1644. data/templates/new-instance/public/images/emoji/unicode/25fc.png +0 -0
  1645. data/templates/new-instance/public/images/emoji/unicode/25fd.png +0 -0
  1646. data/templates/new-instance/public/images/emoji/unicode/25fe.png +0 -0
  1647. data/templates/new-instance/public/images/emoji/unicode/2600.png +0 -0
  1648. data/templates/new-instance/public/images/emoji/unicode/2601.png +0 -0
  1649. data/templates/new-instance/public/images/emoji/unicode/260e.png +0 -0
  1650. data/templates/new-instance/public/images/emoji/unicode/2611.png +0 -0
  1651. data/templates/new-instance/public/images/emoji/unicode/2614.png +0 -0
  1652. data/templates/new-instance/public/images/emoji/unicode/2615.png +0 -0
  1653. data/templates/new-instance/public/images/emoji/unicode/261d.png +0 -0
  1654. data/templates/new-instance/public/images/emoji/unicode/263a.png +0 -0
  1655. data/templates/new-instance/public/images/emoji/unicode/2648.png +0 -0
  1656. data/templates/new-instance/public/images/emoji/unicode/2649.png +0 -0
  1657. data/templates/new-instance/public/images/emoji/unicode/264a.png +0 -0
  1658. data/templates/new-instance/public/images/emoji/unicode/264b.png +0 -0
  1659. data/templates/new-instance/public/images/emoji/unicode/264c.png +0 -0
  1660. data/templates/new-instance/public/images/emoji/unicode/264d.png +0 -0
  1661. data/templates/new-instance/public/images/emoji/unicode/264e.png +0 -0
  1662. data/templates/new-instance/public/images/emoji/unicode/264f.png +0 -0
  1663. data/templates/new-instance/public/images/emoji/unicode/2650.png +0 -0
  1664. data/templates/new-instance/public/images/emoji/unicode/2651.png +0 -0
  1665. data/templates/new-instance/public/images/emoji/unicode/2652.png +0 -0
  1666. data/templates/new-instance/public/images/emoji/unicode/2653.png +0 -0
  1667. data/templates/new-instance/public/images/emoji/unicode/2660.png +0 -0
  1668. data/templates/new-instance/public/images/emoji/unicode/2663.png +0 -0
  1669. data/templates/new-instance/public/images/emoji/unicode/2665.png +0 -0
  1670. data/templates/new-instance/public/images/emoji/unicode/2666.png +0 -0
  1671. data/templates/new-instance/public/images/emoji/unicode/2668.png +0 -0
  1672. data/templates/new-instance/public/images/emoji/unicode/267b.png +0 -0
  1673. data/templates/new-instance/public/images/emoji/unicode/267f.png +0 -0
  1674. data/templates/new-instance/public/images/emoji/unicode/2693.png +0 -0
  1675. data/templates/new-instance/public/images/emoji/unicode/26a0.png +0 -0
  1676. data/templates/new-instance/public/images/emoji/unicode/26a1.png +0 -0
  1677. data/templates/new-instance/public/images/emoji/unicode/26aa.png +0 -0
  1678. data/templates/new-instance/public/images/emoji/unicode/26ab.png +0 -0
  1679. data/templates/new-instance/public/images/emoji/unicode/26bd.png +0 -0
  1680. data/templates/new-instance/public/images/emoji/unicode/26be.png +0 -0
  1681. data/templates/new-instance/public/images/emoji/unicode/26c4.png +0 -0
  1682. data/templates/new-instance/public/images/emoji/unicode/26c5.png +0 -0
  1683. data/templates/new-instance/public/images/emoji/unicode/26ce.png +0 -0
  1684. data/templates/new-instance/public/images/emoji/unicode/26d4.png +0 -0
  1685. data/templates/new-instance/public/images/emoji/unicode/26ea.png +0 -0
  1686. data/templates/new-instance/public/images/emoji/unicode/26f2.png +0 -0
  1687. data/templates/new-instance/public/images/emoji/unicode/26f3.png +0 -0
  1688. data/templates/new-instance/public/images/emoji/unicode/26f5.png +0 -0
  1689. data/templates/new-instance/public/images/emoji/unicode/26fa.png +0 -0
  1690. data/templates/new-instance/public/images/emoji/unicode/26fd.png +0 -0
  1691. data/templates/new-instance/public/images/emoji/unicode/2702.png +0 -0
  1692. data/templates/new-instance/public/images/emoji/unicode/2705.png +0 -0
  1693. data/templates/new-instance/public/images/emoji/unicode/2708.png +0 -0
  1694. data/templates/new-instance/public/images/emoji/unicode/2709.png +0 -0
  1695. data/templates/new-instance/public/images/emoji/unicode/270a.png +0 -0
  1696. data/templates/new-instance/public/images/emoji/unicode/270b.png +0 -0
  1697. data/templates/new-instance/public/images/emoji/unicode/270c.png +0 -0
  1698. data/templates/new-instance/public/images/emoji/unicode/270f.png +0 -0
  1699. data/templates/new-instance/public/images/emoji/unicode/2712.png +0 -0
  1700. data/templates/new-instance/public/images/emoji/unicode/2714.png +0 -0
  1701. data/templates/new-instance/public/images/emoji/unicode/2716.png +0 -0
  1702. data/templates/new-instance/public/images/emoji/unicode/2728.png +0 -0
  1703. data/templates/new-instance/public/images/emoji/unicode/2733.png +0 -0
  1704. data/templates/new-instance/public/images/emoji/unicode/2734.png +0 -0
  1705. data/templates/new-instance/public/images/emoji/unicode/2744.png +0 -0
  1706. data/templates/new-instance/public/images/emoji/unicode/2747.png +0 -0
  1707. data/templates/new-instance/public/images/emoji/unicode/274c.png +0 -0
  1708. data/templates/new-instance/public/images/emoji/unicode/274e.png +0 -0
  1709. data/templates/new-instance/public/images/emoji/unicode/2753.png +0 -0
  1710. data/templates/new-instance/public/images/emoji/unicode/2754.png +0 -0
  1711. data/templates/new-instance/public/images/emoji/unicode/2755.png +0 -0
  1712. data/templates/new-instance/public/images/emoji/unicode/2757.png +0 -0
  1713. data/templates/new-instance/public/images/emoji/unicode/2764.png +0 -0
  1714. data/templates/new-instance/public/images/emoji/unicode/2795.png +0 -0
  1715. data/templates/new-instance/public/images/emoji/unicode/2796.png +0 -0
  1716. data/templates/new-instance/public/images/emoji/unicode/2797.png +0 -0
  1717. data/templates/new-instance/public/images/emoji/unicode/27a1.png +0 -0
  1718. data/templates/new-instance/public/images/emoji/unicode/27b0.png +0 -0
  1719. data/templates/new-instance/public/images/emoji/unicode/27bf.png +0 -0
  1720. data/templates/new-instance/public/images/emoji/unicode/2934.png +0 -0
  1721. data/templates/new-instance/public/images/emoji/unicode/2935.png +0 -0
  1722. data/templates/new-instance/public/images/emoji/unicode/2b05.png +0 -0
  1723. data/templates/new-instance/public/images/emoji/unicode/2b06.png +0 -0
  1724. data/templates/new-instance/public/images/emoji/unicode/2b07.png +0 -0
  1725. data/templates/new-instance/public/images/emoji/unicode/2b1b.png +0 -0
  1726. data/templates/new-instance/public/images/emoji/unicode/2b1c.png +0 -0
  1727. data/templates/new-instance/public/images/emoji/unicode/2b50.png +0 -0
  1728. data/templates/new-instance/public/images/emoji/unicode/2b55.png +0 -0
  1729. data/templates/new-instance/public/images/emoji/unicode/3030.png +0 -0
  1730. data/templates/new-instance/public/images/emoji/unicode/303d.png +0 -0
  1731. data/templates/new-instance/public/images/emoji/unicode/3297.png +0 -0
  1732. data/templates/new-instance/public/images/emoji/unicode/3299.png +0 -0
  1733. data/templates/new-instance/public/images/emoji/unlock.png +0 -0
  1734. data/templates/new-instance/public/images/emoji/up.png +0 -0
  1735. data/templates/new-instance/public/images/emoji/us.png +0 -0
  1736. data/templates/new-instance/public/images/emoji/v.png +0 -0
  1737. data/templates/new-instance/public/images/emoji/vertical_traffic_light.png +0 -0
  1738. data/templates/new-instance/public/images/emoji/vhs.png +0 -0
  1739. data/templates/new-instance/public/images/emoji/vibration_mode.png +0 -0
  1740. data/templates/new-instance/public/images/emoji/video_camera.png +0 -0
  1741. data/templates/new-instance/public/images/emoji/video_game.png +0 -0
  1742. data/templates/new-instance/public/images/emoji/violin.png +0 -0
  1743. data/templates/new-instance/public/images/emoji/virgo.png +0 -0
  1744. data/templates/new-instance/public/images/emoji/volcano.png +0 -0
  1745. data/templates/new-instance/public/images/emoji/vs.png +0 -0
  1746. data/templates/new-instance/public/images/emoji/walking.png +0 -0
  1747. data/templates/new-instance/public/images/emoji/waning_crescent_moon.png +0 -0
  1748. data/templates/new-instance/public/images/emoji/waning_gibbous_moon.png +0 -0
  1749. data/templates/new-instance/public/images/emoji/warning.png +0 -0
  1750. data/templates/new-instance/public/images/emoji/watch.png +0 -0
  1751. data/templates/new-instance/public/images/emoji/water_buffalo.png +0 -0
  1752. data/templates/new-instance/public/images/emoji/watermelon.png +0 -0
  1753. data/templates/new-instance/public/images/emoji/wave.png +0 -0
  1754. data/templates/new-instance/public/images/emoji/wavy_dash.png +0 -0
  1755. data/templates/new-instance/public/images/emoji/waxing_crescent_moon.png +0 -0
  1756. data/templates/new-instance/public/images/emoji/waxing_gibbous_moon.png +0 -0
  1757. data/templates/new-instance/public/images/emoji/wc.png +0 -0
  1758. data/templates/new-instance/public/images/emoji/weary.png +0 -0
  1759. data/templates/new-instance/public/images/emoji/wedding.png +0 -0
  1760. data/templates/new-instance/public/images/emoji/whale.png +0 -0
  1761. data/templates/new-instance/public/images/emoji/whale2.png +0 -0
  1762. data/templates/new-instance/public/images/emoji/wheelchair.png +0 -0
  1763. data/templates/new-instance/public/images/emoji/white_check_mark.png +0 -0
  1764. data/templates/new-instance/public/images/emoji/white_circle.png +0 -0
  1765. data/templates/new-instance/public/images/emoji/white_flower.png +0 -0
  1766. data/templates/new-instance/public/images/emoji/white_large_square.png +0 -0
  1767. data/templates/new-instance/public/images/emoji/white_medium_small_square.png +0 -0
  1768. data/templates/new-instance/public/images/emoji/white_medium_square.png +0 -0
  1769. data/templates/new-instance/public/images/emoji/white_small_square.png +0 -0
  1770. data/templates/new-instance/public/images/emoji/white_square_button.png +0 -0
  1771. data/templates/new-instance/public/images/emoji/wind_chime.png +0 -0
  1772. data/templates/new-instance/public/images/emoji/wine_glass.png +0 -0
  1773. data/templates/new-instance/public/images/emoji/wink.png +0 -0
  1774. data/templates/new-instance/public/images/emoji/wolf.png +0 -0
  1775. data/templates/new-instance/public/images/emoji/woman.png +0 -0
  1776. data/templates/new-instance/public/images/emoji/womans_clothes.png +0 -0
  1777. data/templates/new-instance/public/images/emoji/womans_hat.png +0 -0
  1778. data/templates/new-instance/public/images/emoji/womens.png +0 -0
  1779. data/templates/new-instance/public/images/emoji/worried.png +0 -0
  1780. data/templates/new-instance/public/images/emoji/wrench.png +0 -0
  1781. data/templates/new-instance/public/images/emoji/x.png +0 -0
  1782. data/templates/new-instance/public/images/emoji/yellow_heart.png +0 -0
  1783. data/templates/new-instance/public/images/emoji/yen.png +0 -0
  1784. data/templates/new-instance/public/images/emoji/yum.png +0 -0
  1785. data/templates/new-instance/public/images/emoji/zap.png +0 -0
  1786. data/templates/new-instance/public/images/emoji/zero.png +0 -0
  1787. data/templates/new-instance/public/images/emoji/zzz.png +0 -0
  1788. data/templates/new-instance/public/robots.txt +5 -0
  1789. data/templates/new-instance/test/test_helper.rb +9 -0
  1790. data/templates/new-instance/test/unit/test_test.rb +9 -0
  1791. data/templates/new-module/Gemfile +20 -0
  1792. data/templates/new-module/MIT-LICENSE +20 -0
  1793. data/templates/new-module/README.md +31 -0
  1794. data/templates/new-module/Rakefile +25 -0
  1795. data/templates/new-module/app/assets/javascripts/houston/%name%/application.js.tt +13 -0
  1796. data/templates/new-module/app/assets/stylesheets/houston/%name%/application.css +13 -0
  1797. data/templates/new-module/app/controllers/houston/%name%/application_controller.rb.tt +4 -0
  1798. data/templates/new-module/app/helpers/houston/%name%/application_helper.rb.tt +4 -0
  1799. data/templates/new-module/app/mailers/.empty_directory +0 -0
  1800. data/templates/new-module/app/models/.empty_directory +0 -0
  1801. data/templates/new-module/app/views/layouts/houston/%name%/application.html.erb.tt +10 -0
  1802. data/templates/new-module/bin/rails.tt +7 -0
  1803. data/templates/new-module/config/initializers/add_navigation_renderer.rb +3 -0
  1804. data/templates/new-module/config/routes.rb +2 -0
  1805. data/templates/new-module/gitignore +10 -0
  1806. data/templates/new-module/houston-%name%.gemspec +22 -0
  1807. data/templates/new-module/lib/houston-%name%.rb +1 -0
  1808. data/templates/new-module/lib/houston/%name%.rb +13 -0
  1809. data/templates/new-module/lib/houston/%name%/configuration.rb +12 -0
  1810. data/templates/new-module/lib/houston/%name%/engine.rb +27 -0
  1811. data/templates/new-module/lib/houston/%name%/version.rb +5 -0
  1812. data/templates/new-module/lib/tasks/%name%_tasks.rake +4 -0
  1813. data/templates/new-module/rails/application.rb +17 -0
  1814. data/templates/new-module/rails/boot.rb +5 -0
  1815. data/templates/new-module/rails/javascripts.js +13 -0
  1816. data/templates/new-module/rails/routes.rb +5 -0
  1817. data/templates/new-module/rails/stylesheets.css +13 -0
  1818. data/templates/new-module/script/rails.tt +7 -0
  1819. data/templates/new-module/test/%name%_test.rb +7 -0
  1820. data/templates/new-module/test/integration/navigation_test.rb +11 -0
  1821. data/templates/new-module/test/test_helper.rb +15 -0
  1822. data/test/acceptance/.keep +0 -0
  1823. data/test/acceptance/creating_a_release_test.rb +79 -0
  1824. data/test/acceptance/rejecting_malformed_requests_test.rb +14 -0
  1825. data/test/data/backtrace.txt +27 -0
  1826. data/test/data/bare_repo.git/FETCH_HEAD +3 -0
  1827. data/test/data/bare_repo.git/HEAD +1 -0
  1828. data/test/data/bare_repo.git/config +9 -0
  1829. data/test/data/bare_repo.git/description +1 -0
  1830. data/test/data/bare_repo.git/hooks/applypatch-msg.sample +15 -0
  1831. data/test/data/bare_repo.git/hooks/commit-msg.sample +24 -0
  1832. data/test/data/bare_repo.git/hooks/post-update.sample +8 -0
  1833. data/test/data/bare_repo.git/hooks/pre-applypatch.sample +14 -0
  1834. data/test/data/bare_repo.git/hooks/pre-commit.sample +50 -0
  1835. data/test/data/bare_repo.git/hooks/pre-rebase.sample +169 -0
  1836. data/test/data/bare_repo.git/hooks/prepare-commit-msg.sample +36 -0
  1837. data/test/data/bare_repo.git/hooks/update.sample +128 -0
  1838. data/test/data/bare_repo.git/info/exclude +6 -0
  1839. data/test/data/bare_repo.git/objects/22/924bbf4378f83cab93bfd5fa7d7777cbc1f3b4 +0 -0
  1840. data/test/data/bare_repo.git/objects/59/e4862a85cf64d42a8b17db45ebf2ba39568679 +0 -0
  1841. data/test/data/bare_repo.git/objects/5f/8cb742401c71308f858bf537855bb07d2932d8 +3 -0
  1842. data/test/data/bare_repo.git/objects/6e/eab9f9ee664c1acb08473921238ca95a8c17f5 +0 -0
  1843. data/test/data/bare_repo.git/objects/7f/ce91258d10807380f36192304883e916a48ec0 +0 -0
  1844. data/test/data/bare_repo.git/objects/b3/d156e4d4bb279e09cca0f31af8ea6e35d3df64 +1 -0
  1845. data/test/data/bare_repo.git/objects/ba/a3ef218a40f23fe542f98d8b8e60a2e8e0bff0 +1 -0
  1846. data/test/data/bare_repo.git/objects/bd/3e9e2e4ddf89a640a4f880cbf55bb46cc7e88a +2 -0
  1847. data/test/data/bare_repo.git/objects/be/63e6ebab6ce87922f97ca24b1338befdbe6915 +0 -0
  1848. data/test/data/bare_repo.git/objects/cc/f4bdedd71011176c0236e98268d71ed73eb80f +0 -0
  1849. data/test/data/bare_repo.git/objects/e0/e4580f44317a084dd5142fef6b4144a4394819 +0 -0
  1850. data/test/data/bare_repo.git/objects/e4/d9901b79d8112dd2fe369fcd8c65594c96a10b +0 -0
  1851. data/test/data/bare_repo.git/objects/pack/pack-dd400c42eded7158ab780652af55aa92c30e37e3.idx +0 -0
  1852. data/test/data/bare_repo.git/objects/pack/pack-dd400c42eded7158ab780652af55aa92c30e37e3.pack +0 -0
  1853. data/test/data/bare_repo.git/packed-refs +2 -0
  1854. data/test/data/bare_repo.git/refs/heads/divergent-branch +1 -0
  1855. data/test/data/bare_repo.git/refs/heads/for-testing +1 -0
  1856. data/test/data/bare_repo.git/refs/heads/master +1 -0
  1857. data/test/data/github_push_event_payload.json +161 -0
  1858. data/test/factories/commit_factory.rb +9 -0
  1859. data/test/factories/deploy_factory.rb +7 -0
  1860. data/test/factories/project_factory.rb +6 -0
  1861. data/test/factories/task_factory.rb +6 -0
  1862. data/test/factories/ticket_factory.rb +8 -0
  1863. data/test/factories/user_factory.rb +13 -0
  1864. data/test/fixtures/.gitkeep +0 -0
  1865. data/test/fixtures/.keep +0 -0
  1866. data/test/fixtures/simplecov_sample.rb +16 -0
  1867. data/test/fixtures/users.yml +10 -0
  1868. data/test/integration/.gitkeep +0 -0
  1869. data/test/integration/.keep +0 -0
  1870. data/test/integration/ci_integration_test.rb +169 -0
  1871. data/test/integration/commits_api_test.rb +67 -0
  1872. data/test/integration/ticket_tasks_api_test.rb +70 -0
  1873. data/test/integration/web_hook_test.rb +30 -0
  1874. data/test/support/config.rb +34 -0
  1875. data/test/support/houston/adapters/ci_server/mock_adapter.rb +23 -0
  1876. data/test/support/houston/adapters/ci_server/mock_adapter/job.rb +29 -0
  1877. data/test/support/houston/adapters/error_tracker/mock_adapter.rb +31 -0
  1878. data/test/support/houston/adapters/ticket_tracker/mock_adapter.rb +21 -0
  1879. data/test/support/houston/adapters/version_control/mock_adapter.rb +21 -0
  1880. data/test/test_helper.rb +171 -0
  1881. data/test/unit/.gitkeep +0 -0
  1882. data/test/unit/adapters/ci_server_adapters_api_test.rb +29 -0
  1883. data/test/unit/adapters/error_tracker_adapters_test.rb +36 -0
  1884. data/test/unit/adapters/git_adapter_test.rb +206 -0
  1885. data/test/unit/adapters/jenkins_adapter_test.rb +184 -0
  1886. data/test/unit/adapters/ticket_tracker_adapters_api_test.rb +67 -0
  1887. data/test/unit/adapters/version_control_adapters_api_test.rb +39 -0
  1888. data/test/unit/concerns/commit_synchronizer_test.rb +137 -0
  1889. data/test/unit/controllers/deploys_controller_test.rb +41 -0
  1890. data/test/unit/controllers/hooks_controller_test.rb +143 -0
  1891. data/test/unit/controllers/project_options_controller_test.rb +43 -0
  1892. data/test/unit/controllers/sprints_controller_test.rb +54 -0
  1893. data/test/unit/controllers/test_runs_controller_test.rb +20 -0
  1894. data/test/unit/controllers/user_options_controller_test.rb +43 -0
  1895. data/test/unit/initializers/sync_commits_on_post_receive_test.rb +14 -0
  1896. data/test/unit/models/code_climate_coverage_report_test.rb +137 -0
  1897. data/test/unit/models/commit_test.rb +277 -0
  1898. data/test/unit/models/deploy_test.rb +97 -0
  1899. data/test/unit/models/observer_test.rb +17 -0
  1900. data/test/unit/models/post_receive_payload_test.rb +19 -0
  1901. data/test/unit/models/project_test.rb +58 -0
  1902. data/test/unit/models/pull_request_test.rb +103 -0
  1903. data/test/unit/models/release_change_test.rb +32 -0
  1904. data/test/unit/models/release_test.rb +62 -0
  1905. data/test/unit/models/source_file_coverage_test.rb +33 -0
  1906. data/test/unit/models/sprint_test.rb +44 -0
  1907. data/test/unit/models/task_test.rb +135 -0
  1908. data/test/unit/models/test_run_test.rb +289 -0
  1909. data/test/unit/models/ticket_antecedents_test.rb +38 -0
  1910. data/test/unit/models/ticket_test.rb +250 -0
  1911. data/test/unit/models/user_test.rb +80 -0
  1912. data/test/unit/presenters/sprint_task_presenter_test.rb +57 -0
  1913. data/test/unit/test_run_comparer_test.rb +108 -0
  1914. data/vendor/assets/javascripts/jquery-ui.js +45 -45
  1915. data/vendor/assets/stylesheets/jquery-ui.css +15 -15
  1916. metadata +2022 -99
  1917. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery-ui-i18n.js +0 -1379
  1918. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-af.js +0 -23
  1919. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ar-DZ.js +0 -23
  1920. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ar.js +0 -23
  1921. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-az.js +0 -23
  1922. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-bg.js +0 -24
  1923. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-bs.js +0 -23
  1924. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ca.js +0 -23
  1925. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-cs.js +0 -23
  1926. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-da.js +0 -23
  1927. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-de.js +0 -23
  1928. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-el.js +0 -23
  1929. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-en-AU.js +0 -23
  1930. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-en-GB.js +0 -23
  1931. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-en-NZ.js +0 -23
  1932. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-eo.js +0 -23
  1933. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-es.js +0 -23
  1934. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-et.js +0 -23
  1935. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-eu.js +0 -23
  1936. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-fa.js +0 -23
  1937. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-fi.js +0 -23
  1938. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-fo.js +0 -23
  1939. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-fr-CH.js +0 -23
  1940. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-fr.js +0 -25
  1941. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-gl.js +0 -23
  1942. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-he.js +0 -23
  1943. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-hr.js +0 -23
  1944. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-hu.js +0 -23
  1945. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-hy.js +0 -23
  1946. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-id.js +0 -23
  1947. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-is.js +0 -23
  1948. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-it.js +0 -23
  1949. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ja.js +0 -23
  1950. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ko.js +0 -23
  1951. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-kz.js +0 -23
  1952. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-lt.js +0 -23
  1953. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-lv.js +0 -23
  1954. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ml.js +0 -23
  1955. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ms.js +0 -23
  1956. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-nl.js +0 -23
  1957. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-no.js +0 -23
  1958. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-pl.js +0 -23
  1959. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-pt-BR.js +0 -23
  1960. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-pt.js +0 -22
  1961. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-rm.js +0 -21
  1962. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ro.js +0 -26
  1963. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ru.js +0 -23
  1964. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-sk.js +0 -23
  1965. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-sl.js +0 -24
  1966. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-sq.js +0 -23
  1967. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-sr-SR.js +0 -23
  1968. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-sr.js +0 -23
  1969. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-sv.js +0 -23
  1970. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-ta.js +0 -23
  1971. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-th.js +0 -23
  1972. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-tj.js +0 -23
  1973. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-tr.js +0 -23
  1974. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-uk.js +0 -23
  1975. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-vi.js +0 -23
  1976. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-zh-CN.js +0 -23
  1977. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-zh-HK.js +0 -23
  1978. data/vendor/assets/javascripts/jquery-ui-1.8.4/i18n/jquery.ui.datepicker-zh-TW.js +0 -23
  1979. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.blind.js +0 -49
  1980. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.bounce.js +0 -78
  1981. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.clip.js +0 -54
  1982. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.core.js +0 -746
  1983. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.drop.js +0 -50
  1984. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.explode.js +0 -79
  1985. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.fade.js +0 -32
  1986. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.fold.js +0 -56
  1987. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.highlight.js +0 -49
  1988. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.pulsate.js +0 -51
  1989. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.scale.js +0 -178
  1990. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.shake.js +0 -57
  1991. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.slide.js +0 -50
  1992. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.effects.transfer.js +0 -45
  1993. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.accordion.js +0 -611
  1994. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.autocomplete.js +0 -612
  1995. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.button.js +0 -416
  1996. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.core.js +0 -312
  1997. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.datepicker.js +0 -1814
  1998. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.dialog.js +0 -879
  1999. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.draggable.js +0 -823
  2000. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.droppable.js +0 -296
  2001. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.mouse.js +0 -160
  2002. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.position.js +0 -252
  2003. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.progressbar.js +0 -109
  2004. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.resizable.js +0 -842
  2005. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.selectable.js +0 -266
  2006. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.slider.js +0 -666
  2007. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.sortable.js +0 -1077
  2008. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.tabs.js +0 -758
  2009. data/vendor/assets/javascripts/jquery-ui-1.8.4/jquery.ui.widget.js +0 -262
@@ -1,1814 +0,0 @@
1
- /*
2
- * jQuery UI Datepicker 1.8.14
3
- *
4
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
- * Dual licensed under the MIT or GPL Version 2 licenses.
6
- * http://jquery.org/license
7
- *
8
- * http://docs.jquery.com/UI/Datepicker
9
- *
10
- * Depends:
11
- * jquery.ui.core.js
12
- */
13
- (function( $, undefined ) {
14
-
15
- $.extend($.ui, { datepicker: { version: "1.8.14" } });
16
-
17
- var PROP_NAME = 'datepicker';
18
- var dpuuid = new Date().getTime();
19
- var instActive;
20
-
21
- /* Date picker manager.
22
- Use the singleton instance of this class, $.datepicker, to interact with the date picker.
23
- Settings for (groups of) date pickers are maintained in an instance object,
24
- allowing multiple different settings on the same page. */
25
-
26
- function Datepicker() {
27
- this.debug = false; // Change this to true to start debugging
28
- this._curInst = null; // The current instance in use
29
- this._keyEvent = false; // If the last event was a key event
30
- this._disabledInputs = []; // List of date picker inputs that have been disabled
31
- this._datepickerShowing = false; // True if the popup picker is showing , false if not
32
- this._inDialog = false; // True if showing within a "dialog", false if not
33
- this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
34
- this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
35
- this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
36
- this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
37
- this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
38
- this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
39
- this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
40
- this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
41
- this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
42
- this.regional = []; // Available regional settings, indexed by language code
43
- this.regional[''] = { // Default regional settings
44
- closeText: 'Done', // Display text for close link
45
- prevText: 'Prev', // Display text for previous month link
46
- nextText: 'Next', // Display text for next month link
47
- currentText: 'Today', // Display text for current month link
48
- monthNames: ['January','February','March','April','May','June',
49
- 'July','August','September','October','November','December'], // Names of months for drop-down and formatting
50
- monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
51
- dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
52
- dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
53
- dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
54
- weekHeader: 'Wk', // Column header for week of the year
55
- dateFormat: 'mm/dd/yy', // See format options on parseDate
56
- firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
57
- isRTL: false, // True if right-to-left language, false if left-to-right
58
- showMonthAfterYear: false, // True if the year select precedes month, false for month then year
59
- yearSuffix: '' // Additional text to append to the year in the month headers
60
- };
61
- this._defaults = { // Global defaults for all the date picker instances
62
- showOn: 'focus', // 'focus' for popup on focus,
63
- // 'button' for trigger button, or 'both' for either
64
- showAnim: 'fadeIn', // Name of jQuery animation for popup
65
- showOptions: {}, // Options for enhanced animations
66
- defaultDate: null, // Used when field is blank: actual date,
67
- // +/-number for offset from today, null for today
68
- appendText: '', // Display text following the input box, e.g. showing the format
69
- buttonText: '...', // Text for trigger button
70
- buttonImage: '', // URL for trigger button image
71
- buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
72
- hideIfNoPrevNext: false, // True to hide next/previous month links
73
- // if not applicable, false to just disable them
74
- navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
75
- gotoCurrent: false, // True if today link goes back to current selection instead
76
- changeMonth: false, // True if month can be selected directly, false if only prev/next
77
- changeYear: false, // True if year can be selected directly, false if only prev/next
78
- yearRange: 'c-10:c+10', // Range of years to display in drop-down,
79
- // either relative to today's year (-nn:+nn), relative to currently displayed year
80
- // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
81
- showOtherMonths: false, // True to show dates in other months, false to leave blank
82
- selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
83
- showWeek: false, // True to show week of the year, false to not show it
84
- calculateWeek: this.iso8601Week, // How to calculate the week of the year,
85
- // takes a Date and returns the number of the week for it
86
- shortYearCutoff: '+10', // Short year values < this are in the current century,
87
- // > this are in the previous century,
88
- // string value starting with '+' for current year + value
89
- minDate: null, // The earliest selectable date, or null for no limit
90
- maxDate: null, // The latest selectable date, or null for no limit
91
- duration: 'fast', // Duration of display/closure
92
- beforeShowDay: null, // Function that takes a date and returns an array with
93
- // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
94
- // [2] = cell title (optional), e.g. $.datepicker.noWeekends
95
- beforeShow: null, // Function that takes an input field and
96
- // returns a set of custom settings for the date picker
97
- onSelect: null, // Define a callback function when a date is selected
98
- onChangeMonthYear: null, // Define a callback function when the month or year is changed
99
- onClose: null, // Define a callback function when the datepicker is closed
100
- numberOfMonths: 1, // Number of months to show at a time
101
- showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
102
- stepMonths: 1, // Number of months to step back/forward
103
- stepBigMonths: 12, // Number of months to step back/forward for the big links
104
- altField: '', // Selector for an alternate field to store selected dates into
105
- altFormat: '', // The date format to use for the alternate field
106
- constrainInput: true, // The input is constrained by the current date format
107
- showButtonPanel: false, // True to show button panel, false to not show it
108
- autoSize: false // True to size the input for the date format, false to leave as is
109
- };
110
- $.extend(this._defaults, this.regional['']);
111
- this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
112
- }
113
-
114
- $.extend(Datepicker.prototype, {
115
- /* Class name added to elements to indicate already configured with a date picker. */
116
- markerClassName: 'hasDatepicker',
117
-
118
- //Keep track of the maximum number of rows displayed (see #7043)
119
- maxRows: 4,
120
-
121
- /* Debug logging (if enabled). */
122
- log: function () {
123
- if (this.debug)
124
- console.log.apply('', arguments);
125
- },
126
-
127
- // TODO rename to "widget" when switching to widget factory
128
- _widgetDatepicker: function() {
129
- return this.dpDiv;
130
- },
131
-
132
- /* Override the default settings for all instances of the date picker.
133
- @param settings object - the new settings to use as defaults (anonymous object)
134
- @return the manager object */
135
- setDefaults: function(settings) {
136
- extendRemove(this._defaults, settings || {});
137
- return this;
138
- },
139
-
140
- /* Attach the date picker to a jQuery selection.
141
- @param target element - the target input field or division or span
142
- @param settings object - the new settings to use for this date picker instance (anonymous) */
143
- _attachDatepicker: function(target, settings) {
144
- // check for settings on the control itself - in namespace 'date:'
145
- var inlineSettings = null;
146
- for (var attrName in this._defaults) {
147
- var attrValue = target.getAttribute('date:' + attrName);
148
- if (attrValue) {
149
- inlineSettings = inlineSettings || {};
150
- try {
151
- inlineSettings[attrName] = eval(attrValue);
152
- } catch (err) {
153
- inlineSettings[attrName] = attrValue;
154
- }
155
- }
156
- }
157
- var nodeName = target.nodeName.toLowerCase();
158
- var inline = (nodeName == 'div' || nodeName == 'span');
159
- if (!target.id) {
160
- this.uuid += 1;
161
- target.id = 'dp' + this.uuid;
162
- }
163
- var inst = this._newInst($(target), inline);
164
- inst.settings = $.extend({}, settings || {}, inlineSettings || {});
165
- if (nodeName == 'input') {
166
- this._connectDatepicker(target, inst);
167
- } else if (inline) {
168
- this._inlineDatepicker(target, inst);
169
- }
170
- },
171
-
172
- /* Create a new instance object. */
173
- _newInst: function(target, inline) {
174
- var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
175
- return {id: id, input: target, // associated target
176
- selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
177
- drawMonth: 0, drawYear: 0, // month being drawn
178
- inline: inline, // is datepicker inline or not
179
- dpDiv: (!inline ? this.dpDiv : // presentation div
180
- bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')))};
181
- },
182
-
183
- /* Attach the date picker to an input field. */
184
- _connectDatepicker: function(target, inst) {
185
- var input = $(target);
186
- inst.append = $([]);
187
- inst.trigger = $([]);
188
- if (input.hasClass(this.markerClassName))
189
- return;
190
- this._attachments(input, inst);
191
- input.addClass(this.markerClassName).keydown(this._doKeyDown).
192
- keypress(this._doKeyPress).keyup(this._doKeyUp).
193
- bind("setData.datepicker", function(event, key, value) {
194
- inst.settings[key] = value;
195
- }).bind("getData.datepicker", function(event, key) {
196
- return this._get(inst, key);
197
- });
198
- this._autoSize(inst);
199
- $.data(target, PROP_NAME, inst);
200
- },
201
-
202
- /* Make attachments based on settings. */
203
- _attachments: function(input, inst) {
204
- var appendText = this._get(inst, 'appendText');
205
- var isRTL = this._get(inst, 'isRTL');
206
- if (inst.append)
207
- inst.append.remove();
208
- if (appendText) {
209
- inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
210
- input[isRTL ? 'before' : 'after'](inst.append);
211
- }
212
- input.unbind('focus', this._showDatepicker);
213
- if (inst.trigger)
214
- inst.trigger.remove();
215
- var showOn = this._get(inst, 'showOn');
216
- if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
217
- input.focus(this._showDatepicker);
218
- if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
219
- var buttonText = this._get(inst, 'buttonText');
220
- var buttonImage = this._get(inst, 'buttonImage');
221
- inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
222
- $('<img/>').addClass(this._triggerClass).
223
- attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
224
- $('<button type="button"></button>').addClass(this._triggerClass).
225
- html(buttonImage == '' ? buttonText : $('<img/>').attr(
226
- { src:buttonImage, alt:buttonText, title:buttonText })));
227
- input[isRTL ? 'before' : 'after'](inst.trigger);
228
- inst.trigger.click(function() {
229
- if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
230
- $.datepicker._hideDatepicker();
231
- else
232
- $.datepicker._showDatepicker(input[0]);
233
- return false;
234
- });
235
- }
236
- },
237
-
238
- /* Apply the maximum length for the date format. */
239
- _autoSize: function(inst) {
240
- if (this._get(inst, 'autoSize') && !inst.inline) {
241
- var date = new Date(2009, 12 - 1, 20); // Ensure double digits
242
- var dateFormat = this._get(inst, 'dateFormat');
243
- if (dateFormat.match(/[DM]/)) {
244
- var findMax = function(names) {
245
- var max = 0;
246
- var maxI = 0;
247
- for (var i = 0; i < names.length; i++) {
248
- if (names[i].length > max) {
249
- max = names[i].length;
250
- maxI = i;
251
- }
252
- }
253
- return maxI;
254
- };
255
- date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
256
- 'monthNames' : 'monthNamesShort'))));
257
- date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
258
- 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
259
- }
260
- inst.input.attr('size', this._formatDate(inst, date).length);
261
- }
262
- },
263
-
264
- /* Attach an inline date picker to a div. */
265
- _inlineDatepicker: function(target, inst) {
266
- var divSpan = $(target);
267
- if (divSpan.hasClass(this.markerClassName))
268
- return;
269
- divSpan.addClass(this.markerClassName).append(inst.dpDiv).
270
- bind("setData.datepicker", function(event, key, value){
271
- inst.settings[key] = value;
272
- }).bind("getData.datepicker", function(event, key){
273
- return this._get(inst, key);
274
- });
275
- $.data(target, PROP_NAME, inst);
276
- this._setDate(inst, this._getDefaultDate(inst), true);
277
- this._updateDatepicker(inst);
278
- this._updateAlternate(inst);
279
- inst.dpDiv.show();
280
- },
281
-
282
- /* Pop-up the date picker in a "dialog" box.
283
- @param input element - ignored
284
- @param date string or Date - the initial date to display
285
- @param onSelect function - the function to call when a date is selected
286
- @param settings object - update the dialog date picker instance's settings (anonymous object)
287
- @param pos int[2] - coordinates for the dialog's position within the screen or
288
- event - with x/y coordinates or
289
- leave empty for default (screen centre)
290
- @return the manager object */
291
- _dialogDatepicker: function(input, date, onSelect, settings, pos) {
292
- var inst = this._dialogInst; // internal instance
293
- if (!inst) {
294
- this.uuid += 1;
295
- var id = 'dp' + this.uuid;
296
- this._dialogInput = $('<input type="text" id="' + id +
297
- '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
298
- this._dialogInput.keydown(this._doKeyDown);
299
- $('body').append(this._dialogInput);
300
- inst = this._dialogInst = this._newInst(this._dialogInput, false);
301
- inst.settings = {};
302
- $.data(this._dialogInput[0], PROP_NAME, inst);
303
- }
304
- extendRemove(inst.settings, settings || {});
305
- date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
306
- this._dialogInput.val(date);
307
-
308
- this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
309
- if (!this._pos) {
310
- var browserWidth = document.documentElement.clientWidth;
311
- var browserHeight = document.documentElement.clientHeight;
312
- var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
313
- var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
314
- this._pos = // should use actual width/height below
315
- [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
316
- }
317
-
318
- // move input on screen for focus, but hidden behind dialog
319
- this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
320
- inst.settings.onSelect = onSelect;
321
- this._inDialog = true;
322
- this.dpDiv.addClass(this._dialogClass);
323
- this._showDatepicker(this._dialogInput[0]);
324
- if ($.blockUI)
325
- $.blockUI(this.dpDiv);
326
- $.data(this._dialogInput[0], PROP_NAME, inst);
327
- return this;
328
- },
329
-
330
- /* Detach a datepicker from its control.
331
- @param target element - the target input field or division or span */
332
- _destroyDatepicker: function(target) {
333
- var $target = $(target);
334
- var inst = $.data(target, PROP_NAME);
335
- if (!$target.hasClass(this.markerClassName)) {
336
- return;
337
- }
338
- var nodeName = target.nodeName.toLowerCase();
339
- $.removeData(target, PROP_NAME);
340
- if (nodeName == 'input') {
341
- inst.append.remove();
342
- inst.trigger.remove();
343
- $target.removeClass(this.markerClassName).
344
- unbind('focus', this._showDatepicker).
345
- unbind('keydown', this._doKeyDown).
346
- unbind('keypress', this._doKeyPress).
347
- unbind('keyup', this._doKeyUp);
348
- } else if (nodeName == 'div' || nodeName == 'span')
349
- $target.removeClass(this.markerClassName).empty();
350
- },
351
-
352
- /* Enable the date picker to a jQuery selection.
353
- @param target element - the target input field or division or span */
354
- _enableDatepicker: function(target) {
355
- var $target = $(target);
356
- var inst = $.data(target, PROP_NAME);
357
- if (!$target.hasClass(this.markerClassName)) {
358
- return;
359
- }
360
- var nodeName = target.nodeName.toLowerCase();
361
- if (nodeName == 'input') {
362
- target.disabled = false;
363
- inst.trigger.filter('button').
364
- each(function() { this.disabled = false; }).end().
365
- filter('img').css({opacity: '1.0', cursor: ''});
366
- }
367
- else if (nodeName == 'div' || nodeName == 'span') {
368
- var inline = $target.children('.' + this._inlineClass);
369
- inline.children().removeClass('ui-state-disabled');
370
- inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
371
- removeAttr("disabled");
372
- }
373
- this._disabledInputs = $.map(this._disabledInputs,
374
- function(value) { return (value == target ? null : value); }); // delete entry
375
- },
376
-
377
- /* Disable the date picker to a jQuery selection.
378
- @param target element - the target input field or division or span */
379
- _disableDatepicker: function(target) {
380
- var $target = $(target);
381
- var inst = $.data(target, PROP_NAME);
382
- if (!$target.hasClass(this.markerClassName)) {
383
- return;
384
- }
385
- var nodeName = target.nodeName.toLowerCase();
386
- if (nodeName == 'input') {
387
- target.disabled = true;
388
- inst.trigger.filter('button').
389
- each(function() { this.disabled = true; }).end().
390
- filter('img').css({opacity: '0.5', cursor: 'default'});
391
- }
392
- else if (nodeName == 'div' || nodeName == 'span') {
393
- var inline = $target.children('.' + this._inlineClass);
394
- inline.children().addClass('ui-state-disabled');
395
- inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
396
- attr("disabled", "disabled");
397
- }
398
- this._disabledInputs = $.map(this._disabledInputs,
399
- function(value) { return (value == target ? null : value); }); // delete entry
400
- this._disabledInputs[this._disabledInputs.length] = target;
401
- },
402
-
403
- /* Is the first field in a jQuery collection disabled as a datepicker?
404
- @param target element - the target input field or division or span
405
- @return boolean - true if disabled, false if enabled */
406
- _isDisabledDatepicker: function(target) {
407
- if (!target) {
408
- return false;
409
- }
410
- for (var i = 0; i < this._disabledInputs.length; i++) {
411
- if (this._disabledInputs[i] == target)
412
- return true;
413
- }
414
- return false;
415
- },
416
-
417
- /* Retrieve the instance data for the target control.
418
- @param target element - the target input field or division or span
419
- @return object - the associated instance data
420
- @throws error if a jQuery problem getting data */
421
- _getInst: function(target) {
422
- try {
423
- return $.data(target, PROP_NAME);
424
- }
425
- catch (err) {
426
- throw 'Missing instance data for this datepicker';
427
- }
428
- },
429
-
430
- /* Update or retrieve the settings for a date picker attached to an input field or division.
431
- @param target element - the target input field or division or span
432
- @param name object - the new settings to update or
433
- string - the name of the setting to change or retrieve,
434
- when retrieving also 'all' for all instance settings or
435
- 'defaults' for all global defaults
436
- @param value any - the new value for the setting
437
- (omit if above is an object or to retrieve a value) */
438
- _optionDatepicker: function(target, name, value) {
439
- var inst = this._getInst(target);
440
- if (arguments.length == 2 && typeof name == 'string') {
441
- return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
442
- (inst ? (name == 'all' ? $.extend({}, inst.settings) :
443
- this._get(inst, name)) : null));
444
- }
445
- var settings = name || {};
446
- if (typeof name == 'string') {
447
- settings = {};
448
- settings[name] = value;
449
- }
450
- if (inst) {
451
- if (this._curInst == inst) {
452
- this._hideDatepicker();
453
- }
454
- var date = this._getDateDatepicker(target, true);
455
- var minDate = this._getMinMaxDate(inst, 'min');
456
- var maxDate = this._getMinMaxDate(inst, 'max');
457
- extendRemove(inst.settings, settings);
458
- // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
459
- if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)
460
- inst.settings.minDate = this._formatDate(inst, minDate);
461
- if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)
462
- inst.settings.maxDate = this._formatDate(inst, maxDate);
463
- this._attachments($(target), inst);
464
- this._autoSize(inst);
465
- this._setDate(inst, date);
466
- this._updateAlternate(inst);
467
- this._updateDatepicker(inst);
468
- }
469
- },
470
-
471
- // change method deprecated
472
- _changeDatepicker: function(target, name, value) {
473
- this._optionDatepicker(target, name, value);
474
- },
475
-
476
- /* Redraw the date picker attached to an input field or division.
477
- @param target element - the target input field or division or span */
478
- _refreshDatepicker: function(target) {
479
- var inst = this._getInst(target);
480
- if (inst) {
481
- this._updateDatepicker(inst);
482
- }
483
- },
484
-
485
- /* Set the dates for a jQuery selection.
486
- @param target element - the target input field or division or span
487
- @param date Date - the new date */
488
- _setDateDatepicker: function(target, date) {
489
- var inst = this._getInst(target);
490
- if (inst) {
491
- this._setDate(inst, date);
492
- this._updateDatepicker(inst);
493
- this._updateAlternate(inst);
494
- }
495
- },
496
-
497
- /* Get the date(s) for the first entry in a jQuery selection.
498
- @param target element - the target input field or division or span
499
- @param noDefault boolean - true if no default date is to be used
500
- @return Date - the current date */
501
- _getDateDatepicker: function(target, noDefault) {
502
- var inst = this._getInst(target);
503
- if (inst && !inst.inline)
504
- this._setDateFromField(inst, noDefault);
505
- return (inst ? this._getDate(inst) : null);
506
- },
507
-
508
- /* Handle keystrokes. */
509
- _doKeyDown: function(event) {
510
- var inst = $.datepicker._getInst(event.target);
511
- var handled = true;
512
- var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
513
- inst._keyEvent = true;
514
- if ($.datepicker._datepickerShowing)
515
- switch (event.keyCode) {
516
- case 9: $.datepicker._hideDatepicker();
517
- handled = false;
518
- break; // hide on tab out
519
- case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
520
- $.datepicker._currentClass + ')', inst.dpDiv);
521
- if (sel[0])
522
- $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
523
- else
524
- $.datepicker._hideDatepicker();
525
- return false; // don't submit the form
526
- break; // select the value on enter
527
- case 27: $.datepicker._hideDatepicker();
528
- break; // hide on escape
529
- case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
530
- -$.datepicker._get(inst, 'stepBigMonths') :
531
- -$.datepicker._get(inst, 'stepMonths')), 'M');
532
- break; // previous month/year on page up/+ ctrl
533
- case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
534
- +$.datepicker._get(inst, 'stepBigMonths') :
535
- +$.datepicker._get(inst, 'stepMonths')), 'M');
536
- break; // next month/year on page down/+ ctrl
537
- case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
538
- handled = event.ctrlKey || event.metaKey;
539
- break; // clear on ctrl or command +end
540
- case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
541
- handled = event.ctrlKey || event.metaKey;
542
- break; // current on ctrl or command +home
543
- case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
544
- handled = event.ctrlKey || event.metaKey;
545
- // -1 day on ctrl or command +left
546
- if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
547
- -$.datepicker._get(inst, 'stepBigMonths') :
548
- -$.datepicker._get(inst, 'stepMonths')), 'M');
549
- // next month/year on alt +left on Mac
550
- break;
551
- case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
552
- handled = event.ctrlKey || event.metaKey;
553
- break; // -1 week on ctrl or command +up
554
- case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
555
- handled = event.ctrlKey || event.metaKey;
556
- // +1 day on ctrl or command +right
557
- if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
558
- +$.datepicker._get(inst, 'stepBigMonths') :
559
- +$.datepicker._get(inst, 'stepMonths')), 'M');
560
- // next month/year on alt +right
561
- break;
562
- case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
563
- handled = event.ctrlKey || event.metaKey;
564
- break; // +1 week on ctrl or command +down
565
- default: handled = false;
566
- }
567
- else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
568
- $.datepicker._showDatepicker(this);
569
- else {
570
- handled = false;
571
- }
572
- if (handled) {
573
- event.preventDefault();
574
- event.stopPropagation();
575
- }
576
- },
577
-
578
- /* Filter entered characters - based on date format. */
579
- _doKeyPress: function(event) {
580
- var inst = $.datepicker._getInst(event.target);
581
- if ($.datepicker._get(inst, 'constrainInput')) {
582
- var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
583
- var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
584
- return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
585
- }
586
- },
587
-
588
- /* Synchronise manual entry and field/alternate field. */
589
- _doKeyUp: function(event) {
590
- var inst = $.datepicker._getInst(event.target);
591
- if (inst.input.val() != inst.lastVal) {
592
- try {
593
- var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
594
- (inst.input ? inst.input.val() : null),
595
- $.datepicker._getFormatConfig(inst));
596
- if (date) { // only if valid
597
- $.datepicker._setDateFromField(inst);
598
- $.datepicker._updateAlternate(inst);
599
- $.datepicker._updateDatepicker(inst);
600
- }
601
- }
602
- catch (event) {
603
- $.datepicker.log(event);
604
- }
605
- }
606
- return true;
607
- },
608
-
609
- /* Pop-up the date picker for a given input field.
610
- @param input element - the input field attached to the date picker or
611
- event - if triggered by focus */
612
- _showDatepicker: function(input) {
613
- input = input.target || input;
614
- if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
615
- input = $('input', input.parentNode)[0];
616
- if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
617
- return;
618
- var inst = $.datepicker._getInst(input);
619
- if ($.datepicker._curInst && $.datepicker._curInst != inst) {
620
- if ( $.datepicker._datepickerShowing ) {
621
- $.datepicker._triggerOnClose($.datepicker._curInst);
622
- }
623
- $.datepicker._curInst.dpDiv.stop(true, true);
624
- }
625
- var beforeShow = $.datepicker._get(inst, 'beforeShow');
626
- extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
627
- inst.lastVal = null;
628
- $.datepicker._lastInput = input;
629
- $.datepicker._setDateFromField(inst);
630
- if ($.datepicker._inDialog) // hide cursor
631
- input.value = '';
632
- if (!$.datepicker._pos) { // position below input
633
- $.datepicker._pos = $.datepicker._findPos(input);
634
- $.datepicker._pos[1] += input.offsetHeight; // add the height
635
- }
636
- var isFixed = false;
637
- $(input).parents().each(function() {
638
- isFixed |= $(this).css('position') == 'fixed';
639
- return !isFixed;
640
- });
641
- if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
642
- $.datepicker._pos[0] -= document.documentElement.scrollLeft;
643
- $.datepicker._pos[1] -= document.documentElement.scrollTop;
644
- }
645
- var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
646
- $.datepicker._pos = null;
647
- //to avoid flashes on Firefox
648
- inst.dpDiv.empty();
649
- // determine sizing offscreen
650
- inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});
651
- $.datepicker._updateDatepicker(inst);
652
- // fix width for dynamic number of date pickers
653
- // and adjust position before showing
654
- offset = $.datepicker._checkOffset(inst, offset, isFixed);
655
- inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
656
- 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
657
- left: offset.left + 'px', top: offset.top + 'px'});
658
- if (!inst.inline) {
659
- var showAnim = $.datepicker._get(inst, 'showAnim');
660
- var duration = $.datepicker._get(inst, 'duration');
661
- var postProcess = function() {
662
- var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
663
- if( !! cover.length ){
664
- var borders = $.datepicker._getBorders(inst.dpDiv);
665
- cover.css({left: -borders[0], top: -borders[1],
666
- width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
667
- }
668
- };
669
- inst.dpDiv.zIndex($(input).zIndex()+1);
670
- $.datepicker._datepickerShowing = true;
671
- if ($.effects && $.effects[showAnim])
672
- inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
673
- else
674
- inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
675
- if (!showAnim || !duration)
676
- postProcess();
677
- if (inst.input.is(':visible') && !inst.input.is(':disabled'))
678
- inst.input.focus();
679
- $.datepicker._curInst = inst;
680
- }
681
- },
682
-
683
- /* Generate the date picker content. */
684
- _updateDatepicker: function(inst) {
685
- var self = this;
686
- self.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
687
- var borders = $.datepicker._getBorders(inst.dpDiv);
688
- instActive = inst; // for delegate hover events
689
- inst.dpDiv.empty().append(this._generateHTML(inst));
690
- var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
691
- if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
692
- cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
693
- }
694
- inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();
695
- var numMonths = this._getNumberOfMonths(inst);
696
- var cols = numMonths[1];
697
- var width = 17;
698
- inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
699
- if (cols > 1)
700
- inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
701
- inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
702
- 'Class']('ui-datepicker-multi');
703
- inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
704
- 'Class']('ui-datepicker-rtl');
705
- if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
706
- // #6694 - don't focus the input if it's already focused
707
- // this breaks the change event in IE
708
- inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
709
- inst.input.focus();
710
- // deffered render of the years select (to avoid flashes on Firefox)
711
- if( inst.yearshtml ){
712
- var origyearshtml = inst.yearshtml;
713
- setTimeout(function(){
714
- //assure that inst.yearshtml didn't change.
715
- if( origyearshtml === inst.yearshtml && inst.yearshtml ){
716
- inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
717
- }
718
- origyearshtml = inst.yearshtml = null;
719
- }, 0);
720
- }
721
- },
722
-
723
- /* Retrieve the size of left and top borders for an element.
724
- @param elem (jQuery object) the element of interest
725
- @return (number[2]) the left and top borders */
726
- _getBorders: function(elem) {
727
- var convert = function(value) {
728
- return {thin: 1, medium: 2, thick: 3}[value] || value;
729
- };
730
- return [parseFloat(convert(elem.css('border-left-width'))),
731
- parseFloat(convert(elem.css('border-top-width')))];
732
- },
733
-
734
- /* Check positioning to remain on screen. */
735
- _checkOffset: function(inst, offset, isFixed) {
736
- var dpWidth = inst.dpDiv.outerWidth();
737
- var dpHeight = inst.dpDiv.outerHeight();
738
- var inputWidth = inst.input ? inst.input.outerWidth() : 0;
739
- var inputHeight = inst.input ? inst.input.outerHeight() : 0;
740
- var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
741
- var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
742
-
743
- offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
744
- offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
745
- offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
746
-
747
- // now check if datepicker is showing outside window viewport - move to a better place if so.
748
- offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
749
- Math.abs(offset.left + dpWidth - viewWidth) : 0);
750
- offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
751
- Math.abs(dpHeight + inputHeight) : 0);
752
-
753
- return offset;
754
- },
755
-
756
- /* Find an object's position on the screen. */
757
- _findPos: function(obj) {
758
- var inst = this._getInst(obj);
759
- var isRTL = this._get(inst, 'isRTL');
760
- while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
761
- obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
762
- }
763
- var position = $(obj).offset();
764
- return [position.left, position.top];
765
- },
766
-
767
- /* Trigger custom callback of onClose. */
768
- _triggerOnClose: function(inst) {
769
- var onClose = this._get(inst, 'onClose');
770
- if (onClose)
771
- onClose.apply((inst.input ? inst.input[0] : null),
772
- [(inst.input ? inst.input.val() : ''), inst]);
773
- },
774
-
775
- /* Hide the date picker from view.
776
- @param input element - the input field attached to the date picker */
777
- _hideDatepicker: function(input) {
778
- var inst = this._curInst;
779
- if (!inst || (input && inst != $.data(input, PROP_NAME)))
780
- return;
781
- if (this._datepickerShowing) {
782
- var showAnim = this._get(inst, 'showAnim');
783
- var duration = this._get(inst, 'duration');
784
- var postProcess = function() {
785
- $.datepicker._tidyDialog(inst);
786
- this._curInst = null;
787
- };
788
- if ($.effects && $.effects[showAnim])
789
- inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
790
- else
791
- inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
792
- (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
793
- if (!showAnim)
794
- postProcess();
795
- $.datepicker._triggerOnClose(inst);
796
- this._datepickerShowing = false;
797
- this._lastInput = null;
798
- if (this._inDialog) {
799
- this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
800
- if ($.blockUI) {
801
- $.unblockUI();
802
- $('body').append(this.dpDiv);
803
- }
804
- }
805
- this._inDialog = false;
806
- }
807
- },
808
-
809
- /* Tidy up after a dialog display. */
810
- _tidyDialog: function(inst) {
811
- inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
812
- },
813
-
814
- /* Close date picker if clicked elsewhere. */
815
- _checkExternalClick: function(event) {
816
- if (!$.datepicker._curInst)
817
- return;
818
- var $target = $(event.target);
819
- if ($target[0].id != $.datepicker._mainDivId &&
820
- $target.parents('#' + $.datepicker._mainDivId).length == 0 &&
821
- !$target.hasClass($.datepicker.markerClassName) &&
822
- !$target.hasClass($.datepicker._triggerClass) &&
823
- $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
824
- $.datepicker._hideDatepicker();
825
- },
826
-
827
- /* Adjust one of the date sub-fields. */
828
- _adjustDate: function(id, offset, period) {
829
- var target = $(id);
830
- var inst = this._getInst(target[0]);
831
- if (this._isDisabledDatepicker(target[0])) {
832
- return;
833
- }
834
- this._adjustInstDate(inst, offset +
835
- (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
836
- period);
837
- this._updateDatepicker(inst);
838
- },
839
-
840
- /* Action for current link. */
841
- _gotoToday: function(id) {
842
- var target = $(id);
843
- var inst = this._getInst(target[0]);
844
- if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
845
- inst.selectedDay = inst.currentDay;
846
- inst.drawMonth = inst.selectedMonth = inst.currentMonth;
847
- inst.drawYear = inst.selectedYear = inst.currentYear;
848
- }
849
- else {
850
- var date = new Date();
851
- inst.selectedDay = date.getDate();
852
- inst.drawMonth = inst.selectedMonth = date.getMonth();
853
- inst.drawYear = inst.selectedYear = date.getFullYear();
854
- }
855
- this._notifyChange(inst);
856
- this._adjustDate(target);
857
- },
858
-
859
- /* Action for selecting a new month/year. */
860
- _selectMonthYear: function(id, select, period) {
861
- var target = $(id);
862
- var inst = this._getInst(target[0]);
863
- inst._selectingMonthYear = false;
864
- inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
865
- inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
866
- parseInt(select.options[select.selectedIndex].value,10);
867
- this._notifyChange(inst);
868
- this._adjustDate(target);
869
- },
870
-
871
- /* Restore input focus after not changing month/year. */
872
- _clickMonthYear: function(id) {
873
- var target = $(id);
874
- var inst = this._getInst(target[0]);
875
- if (inst.input && inst._selectingMonthYear) {
876
- setTimeout(function() {
877
- inst.input.focus();
878
- }, 0);
879
- }
880
- inst._selectingMonthYear = !inst._selectingMonthYear;
881
- },
882
-
883
- /* Action for selecting a day. */
884
- _selectDay: function(id, month, year, td) {
885
- var target = $(id);
886
- if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
887
- return;
888
- }
889
- var inst = this._getInst(target[0]);
890
- inst.selectedDay = inst.currentDay = $('a', td).html();
891
- inst.selectedMonth = inst.currentMonth = month;
892
- inst.selectedYear = inst.currentYear = year;
893
- this._selectDate(id, this._formatDate(inst,
894
- inst.currentDay, inst.currentMonth, inst.currentYear));
895
- },
896
-
897
- /* Erase the input field and hide the date picker. */
898
- _clearDate: function(id) {
899
- var target = $(id);
900
- var inst = this._getInst(target[0]);
901
- this._selectDate(target, '');
902
- },
903
-
904
- /* Update the input field with the selected date. */
905
- _selectDate: function(id, dateStr) {
906
- var target = $(id);
907
- var inst = this._getInst(target[0]);
908
- dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
909
- if (inst.input)
910
- inst.input.val(dateStr);
911
- this._updateAlternate(inst);
912
- var onSelect = this._get(inst, 'onSelect');
913
- if (onSelect)
914
- onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback
915
- else if (inst.input)
916
- inst.input.trigger('change'); // fire the change event
917
- if (inst.inline)
918
- this._updateDatepicker(inst);
919
- else {
920
- this._hideDatepicker();
921
- this._lastInput = inst.input[0];
922
- if (typeof(inst.input[0]) != 'object')
923
- inst.input.focus(); // restore focus
924
- this._lastInput = null;
925
- }
926
- },
927
-
928
- /* Update any alternate field to synchronise with the main field. */
929
- _updateAlternate: function(inst) {
930
- var altField = this._get(inst, 'altField');
931
- if (altField) { // update alternate field too
932
- var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
933
- var date = this._getDate(inst);
934
- var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
935
- $(altField).each(function() { $(this).val(dateStr); });
936
- }
937
- },
938
-
939
- /* Set as beforeShowDay function to prevent selection of weekends.
940
- @param date Date - the date to customise
941
- @return [boolean, string] - is this date selectable?, what is its CSS class? */
942
- noWeekends: function(date) {
943
- var day = date.getDay();
944
- return [(day > 0 && day < 6), ''];
945
- },
946
-
947
- /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
948
- @param date Date - the date to get the week for
949
- @return number - the number of the week within the year that contains this date */
950
- iso8601Week: function(date) {
951
- var checkDate = new Date(date.getTime());
952
- // Find Thursday of this week starting on Monday
953
- checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
954
- var time = checkDate.getTime();
955
- checkDate.setMonth(0); // Compare with Jan 1
956
- checkDate.setDate(1);
957
- return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
958
- },
959
-
960
- /* Parse a string value into a date object.
961
- See formatDate below for the possible formats.
962
-
963
- @param format string - the expected format of the date
964
- @param value string - the date in the above format
965
- @param settings Object - attributes include:
966
- shortYearCutoff number - the cutoff year for determining the century (optional)
967
- dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
968
- dayNames string[7] - names of the days from Sunday (optional)
969
- monthNamesShort string[12] - abbreviated names of the months (optional)
970
- monthNames string[12] - names of the months (optional)
971
- @return Date - the extracted date value or null if value is blank */
972
- parseDate: function (format, value, settings) {
973
- if (format == null || value == null)
974
- throw 'Invalid arguments';
975
- value = (typeof value == 'object' ? value.toString() : value + '');
976
- if (value == '')
977
- return null;
978
- var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
979
- shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
980
- new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
981
- var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
982
- var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
983
- var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
984
- var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
985
- var year = -1;
986
- var month = -1;
987
- var day = -1;
988
- var doy = -1;
989
- var literal = false;
990
- // Check whether a format character is doubled
991
- var lookAhead = function(match) {
992
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
993
- if (matches)
994
- iFormat++;
995
- return matches;
996
- };
997
- // Extract a number from the string value
998
- var getNumber = function(match) {
999
- var isDoubled = lookAhead(match);
1000
- var size = (match == '@' ? 14 : (match == '!' ? 20 :
1001
- (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
1002
- var digits = new RegExp('^\\d{1,' + size + '}');
1003
- var num = value.substring(iValue).match(digits);
1004
- if (!num)
1005
- throw 'Missing number at position ' + iValue;
1006
- iValue += num[0].length;
1007
- return parseInt(num[0], 10);
1008
- };
1009
- // Extract a name from the string value and convert to an index
1010
- var getName = function(match, shortNames, longNames) {
1011
- var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
1012
- return [ [k, v] ];
1013
- }).sort(function (a, b) {
1014
- return -(a[1].length - b[1].length);
1015
- });
1016
- var index = -1;
1017
- $.each(names, function (i, pair) {
1018
- var name = pair[1];
1019
- if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {
1020
- index = pair[0];
1021
- iValue += name.length;
1022
- return false;
1023
- }
1024
- });
1025
- if (index != -1)
1026
- return index + 1;
1027
- else
1028
- throw 'Unknown name at position ' + iValue;
1029
- };
1030
- // Confirm that a literal character matches the string value
1031
- var checkLiteral = function() {
1032
- if (value.charAt(iValue) != format.charAt(iFormat))
1033
- throw 'Unexpected literal at position ' + iValue;
1034
- iValue++;
1035
- };
1036
- var iValue = 0;
1037
- for (var iFormat = 0; iFormat < format.length; iFormat++) {
1038
- if (literal)
1039
- if (format.charAt(iFormat) == "'" && !lookAhead("'"))
1040
- literal = false;
1041
- else
1042
- checkLiteral();
1043
- else
1044
- switch (format.charAt(iFormat)) {
1045
- case 'd':
1046
- day = getNumber('d');
1047
- break;
1048
- case 'D':
1049
- getName('D', dayNamesShort, dayNames);
1050
- break;
1051
- case 'o':
1052
- doy = getNumber('o');
1053
- break;
1054
- case 'm':
1055
- month = getNumber('m');
1056
- break;
1057
- case 'M':
1058
- month = getName('M', monthNamesShort, monthNames);
1059
- break;
1060
- case 'y':
1061
- year = getNumber('y');
1062
- break;
1063
- case '@':
1064
- var date = new Date(getNumber('@'));
1065
- year = date.getFullYear();
1066
- month = date.getMonth() + 1;
1067
- day = date.getDate();
1068
- break;
1069
- case '!':
1070
- var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
1071
- year = date.getFullYear();
1072
- month = date.getMonth() + 1;
1073
- day = date.getDate();
1074
- break;
1075
- case "'":
1076
- if (lookAhead("'"))
1077
- checkLiteral();
1078
- else
1079
- literal = true;
1080
- break;
1081
- default:
1082
- checkLiteral();
1083
- }
1084
- }
1085
- if (iValue < value.length){
1086
- throw "Extra/unparsed characters found in date: " + value.substring(iValue);
1087
- }
1088
- if (year == -1)
1089
- year = new Date().getFullYear();
1090
- else if (year < 100)
1091
- year += new Date().getFullYear() - new Date().getFullYear() % 100 +
1092
- (year <= shortYearCutoff ? 0 : -100);
1093
- if (doy > -1) {
1094
- month = 1;
1095
- day = doy;
1096
- do {
1097
- var dim = this._getDaysInMonth(year, month - 1);
1098
- if (day <= dim)
1099
- break;
1100
- month++;
1101
- day -= dim;
1102
- } while (true);
1103
- }
1104
- var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
1105
- if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
1106
- throw 'Invalid date'; // E.g. 31/02/00
1107
- return date;
1108
- },
1109
-
1110
- /* Standard date formats. */
1111
- ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
1112
- COOKIE: 'D, dd M yy',
1113
- ISO_8601: 'yy-mm-dd',
1114
- RFC_822: 'D, d M y',
1115
- RFC_850: 'DD, dd-M-y',
1116
- RFC_1036: 'D, d M y',
1117
- RFC_1123: 'D, d M yy',
1118
- RFC_2822: 'D, d M yy',
1119
- RSS: 'D, d M y', // RFC 822
1120
- TICKS: '!',
1121
- TIMESTAMP: '@',
1122
- W3C: 'yy-mm-dd', // ISO 8601
1123
-
1124
- _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
1125
- Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
1126
-
1127
- /* Format a date object into a string value.
1128
- The format can be combinations of the following:
1129
- d - day of month (no leading zero)
1130
- dd - day of month (two digit)
1131
- o - day of year (no leading zeros)
1132
- oo - day of year (three digit)
1133
- D - day name short
1134
- DD - day name long
1135
- m - month of year (no leading zero)
1136
- mm - month of year (two digit)
1137
- M - month name short
1138
- MM - month name long
1139
- y - year (two digit)
1140
- yy - year (four digit)
1141
- @ - Unix timestamp (ms since 01/01/1970)
1142
- ! - Windows ticks (100ns since 01/01/0001)
1143
- '...' - literal text
1144
- '' - single quote
1145
-
1146
- @param format string - the desired format of the date
1147
- @param date Date - the date value to format
1148
- @param settings Object - attributes include:
1149
- dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
1150
- dayNames string[7] - names of the days from Sunday (optional)
1151
- monthNamesShort string[12] - abbreviated names of the months (optional)
1152
- monthNames string[12] - names of the months (optional)
1153
- @return string - the date in the above format */
1154
- formatDate: function (format, date, settings) {
1155
- if (!date)
1156
- return '';
1157
- var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
1158
- var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
1159
- var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
1160
- var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
1161
- // Check whether a format character is doubled
1162
- var lookAhead = function(match) {
1163
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
1164
- if (matches)
1165
- iFormat++;
1166
- return matches;
1167
- };
1168
- // Format a number, with leading zero if necessary
1169
- var formatNumber = function(match, value, len) {
1170
- var num = '' + value;
1171
- if (lookAhead(match))
1172
- while (num.length < len)
1173
- num = '0' + num;
1174
- return num;
1175
- };
1176
- // Format a name, short or long as requested
1177
- var formatName = function(match, value, shortNames, longNames) {
1178
- return (lookAhead(match) ? longNames[value] : shortNames[value]);
1179
- };
1180
- var output = '';
1181
- var literal = false;
1182
- if (date)
1183
- for (var iFormat = 0; iFormat < format.length; iFormat++) {
1184
- if (literal)
1185
- if (format.charAt(iFormat) == "'" && !lookAhead("'"))
1186
- literal = false;
1187
- else
1188
- output += format.charAt(iFormat);
1189
- else
1190
- switch (format.charAt(iFormat)) {
1191
- case 'd':
1192
- output += formatNumber('d', date.getDate(), 2);
1193
- break;
1194
- case 'D':
1195
- output += formatName('D', date.getDay(), dayNamesShort, dayNames);
1196
- break;
1197
- case 'o':
1198
- output += formatNumber('o',
1199
- Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
1200
- break;
1201
- case 'm':
1202
- output += formatNumber('m', date.getMonth() + 1, 2);
1203
- break;
1204
- case 'M':
1205
- output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
1206
- break;
1207
- case 'y':
1208
- output += (lookAhead('y') ? date.getFullYear() :
1209
- (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
1210
- break;
1211
- case '@':
1212
- output += date.getTime();
1213
- break;
1214
- case '!':
1215
- output += date.getTime() * 10000 + this._ticksTo1970;
1216
- break;
1217
- case "'":
1218
- if (lookAhead("'"))
1219
- output += "'";
1220
- else
1221
- literal = true;
1222
- break;
1223
- default:
1224
- output += format.charAt(iFormat);
1225
- }
1226
- }
1227
- return output;
1228
- },
1229
-
1230
- /* Extract all possible characters from the date format. */
1231
- _possibleChars: function (format) {
1232
- var chars = '';
1233
- var literal = false;
1234
- // Check whether a format character is doubled
1235
- var lookAhead = function(match) {
1236
- var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
1237
- if (matches)
1238
- iFormat++;
1239
- return matches;
1240
- };
1241
- for (var iFormat = 0; iFormat < format.length; iFormat++)
1242
- if (literal)
1243
- if (format.charAt(iFormat) == "'" && !lookAhead("'"))
1244
- literal = false;
1245
- else
1246
- chars += format.charAt(iFormat);
1247
- else
1248
- switch (format.charAt(iFormat)) {
1249
- case 'd': case 'm': case 'y': case '@':
1250
- chars += '0123456789';
1251
- break;
1252
- case 'D': case 'M':
1253
- return null; // Accept anything
1254
- case "'":
1255
- if (lookAhead("'"))
1256
- chars += "'";
1257
- else
1258
- literal = true;
1259
- break;
1260
- default:
1261
- chars += format.charAt(iFormat);
1262
- }
1263
- return chars;
1264
- },
1265
-
1266
- /* Get a setting value, defaulting if necessary. */
1267
- _get: function(inst, name) {
1268
- return inst.settings[name] !== undefined ?
1269
- inst.settings[name] : this._defaults[name];
1270
- },
1271
-
1272
- /* Parse existing date and initialise date picker. */
1273
- _setDateFromField: function(inst, noDefault) {
1274
- if (inst.input.val() == inst.lastVal) {
1275
- return;
1276
- }
1277
- var dateFormat = this._get(inst, 'dateFormat');
1278
- var dates = inst.lastVal = inst.input ? inst.input.val() : null;
1279
- var date, defaultDate;
1280
- date = defaultDate = this._getDefaultDate(inst);
1281
- var settings = this._getFormatConfig(inst);
1282
- try {
1283
- date = this.parseDate(dateFormat, dates, settings) || defaultDate;
1284
- } catch (event) {
1285
- this.log(event);
1286
- dates = (noDefault ? '' : dates);
1287
- }
1288
- inst.selectedDay = date.getDate();
1289
- inst.drawMonth = inst.selectedMonth = date.getMonth();
1290
- inst.drawYear = inst.selectedYear = date.getFullYear();
1291
- inst.currentDay = (dates ? date.getDate() : 0);
1292
- inst.currentMonth = (dates ? date.getMonth() : 0);
1293
- inst.currentYear = (dates ? date.getFullYear() : 0);
1294
- this._adjustInstDate(inst);
1295
- },
1296
-
1297
- /* Retrieve the default date shown on opening. */
1298
- _getDefaultDate: function(inst) {
1299
- return this._restrictMinMax(inst,
1300
- this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
1301
- },
1302
-
1303
- /* A date may be specified as an exact value or a relative one. */
1304
- _determineDate: function(inst, date, defaultDate) {
1305
- var offsetNumeric = function(offset) {
1306
- var date = new Date();
1307
- date.setDate(date.getDate() + offset);
1308
- return date;
1309
- };
1310
- var offsetString = function(offset) {
1311
- try {
1312
- return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
1313
- offset, $.datepicker._getFormatConfig(inst));
1314
- }
1315
- catch (e) {
1316
- // Ignore
1317
- }
1318
- var date = (offset.toLowerCase().match(/^c/) ?
1319
- $.datepicker._getDate(inst) : null) || new Date();
1320
- var year = date.getFullYear();
1321
- var month = date.getMonth();
1322
- var day = date.getDate();
1323
- var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
1324
- var matches = pattern.exec(offset);
1325
- while (matches) {
1326
- switch (matches[2] || 'd') {
1327
- case 'd' : case 'D' :
1328
- day += parseInt(matches[1],10); break;
1329
- case 'w' : case 'W' :
1330
- day += parseInt(matches[1],10) * 7; break;
1331
- case 'm' : case 'M' :
1332
- month += parseInt(matches[1],10);
1333
- day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
1334
- break;
1335
- case 'y': case 'Y' :
1336
- year += parseInt(matches[1],10);
1337
- day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
1338
- break;
1339
- }
1340
- matches = pattern.exec(offset);
1341
- }
1342
- return new Date(year, month, day);
1343
- };
1344
- var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
1345
- (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
1346
- newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
1347
- if (newDate) {
1348
- newDate.setHours(0);
1349
- newDate.setMinutes(0);
1350
- newDate.setSeconds(0);
1351
- newDate.setMilliseconds(0);
1352
- }
1353
- return this._daylightSavingAdjust(newDate);
1354
- },
1355
-
1356
- /* Handle switch to/from daylight saving.
1357
- Hours may be non-zero on daylight saving cut-over:
1358
- > 12 when midnight changeover, but then cannot generate
1359
- midnight datetime, so jump to 1AM, otherwise reset.
1360
- @param date (Date) the date to check
1361
- @return (Date) the corrected date */
1362
- _daylightSavingAdjust: function(date) {
1363
- if (!date) return null;
1364
- date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
1365
- return date;
1366
- },
1367
-
1368
- /* Set the date(s) directly. */
1369
- _setDate: function(inst, date, noChange) {
1370
- var clear = !date;
1371
- var origMonth = inst.selectedMonth;
1372
- var origYear = inst.selectedYear;
1373
- var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
1374
- inst.selectedDay = inst.currentDay = newDate.getDate();
1375
- inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
1376
- inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
1377
- if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
1378
- this._notifyChange(inst);
1379
- this._adjustInstDate(inst);
1380
- if (inst.input) {
1381
- inst.input.val(clear ? '' : this._formatDate(inst));
1382
- }
1383
- },
1384
-
1385
- /* Retrieve the date(s) directly. */
1386
- _getDate: function(inst) {
1387
- var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
1388
- this._daylightSavingAdjust(new Date(
1389
- inst.currentYear, inst.currentMonth, inst.currentDay)));
1390
- return startDate;
1391
- },
1392
-
1393
- /* Generate the HTML for the current state of the date picker. */
1394
- _generateHTML: function(inst) {
1395
- var today = new Date();
1396
- today = this._daylightSavingAdjust(
1397
- new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
1398
- var isRTL = this._get(inst, 'isRTL');
1399
- var showButtonPanel = this._get(inst, 'showButtonPanel');
1400
- var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
1401
- var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
1402
- var numMonths = this._getNumberOfMonths(inst);
1403
- var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
1404
- var stepMonths = this._get(inst, 'stepMonths');
1405
- var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
1406
- var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
1407
- new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
1408
- var minDate = this._getMinMaxDate(inst, 'min');
1409
- var maxDate = this._getMinMaxDate(inst, 'max');
1410
- var drawMonth = inst.drawMonth - showCurrentAtPos;
1411
- var drawYear = inst.drawYear;
1412
- if (drawMonth < 0) {
1413
- drawMonth += 12;
1414
- drawYear--;
1415
- }
1416
- if (maxDate) {
1417
- var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
1418
- maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
1419
- maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
1420
- while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
1421
- drawMonth--;
1422
- if (drawMonth < 0) {
1423
- drawMonth = 11;
1424
- drawYear--;
1425
- }
1426
- }
1427
- }
1428
- inst.drawMonth = drawMonth;
1429
- inst.drawYear = drawYear;
1430
- var prevText = this._get(inst, 'prevText');
1431
- prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
1432
- this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
1433
- this._getFormatConfig(inst)));
1434
- var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
1435
- '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +
1436
- '.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
1437
- ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
1438
- (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
1439
- var nextText = this._get(inst, 'nextText');
1440
- nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
1441
- this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
1442
- this._getFormatConfig(inst)));
1443
- var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
1444
- '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +
1445
- '.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
1446
- ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
1447
- (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
1448
- var currentText = this._get(inst, 'currentText');
1449
- var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
1450
- currentText = (!navigationAsDateFormat ? currentText :
1451
- this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
1452
- var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
1453
- '.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
1454
- var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
1455
- (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
1456
- '.datepicker._gotoToday(\'#' + inst.id + '\');"' +
1457
- '>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
1458
- var firstDay = parseInt(this._get(inst, 'firstDay'),10);
1459
- firstDay = (isNaN(firstDay) ? 0 : firstDay);
1460
- var showWeek = this._get(inst, 'showWeek');
1461
- var dayNames = this._get(inst, 'dayNames');
1462
- var dayNamesShort = this._get(inst, 'dayNamesShort');
1463
- var dayNamesMin = this._get(inst, 'dayNamesMin');
1464
- var monthNames = this._get(inst, 'monthNames');
1465
- var monthNamesShort = this._get(inst, 'monthNamesShort');
1466
- var beforeShowDay = this._get(inst, 'beforeShowDay');
1467
- var showOtherMonths = this._get(inst, 'showOtherMonths');
1468
- var selectOtherMonths = this._get(inst, 'selectOtherMonths');
1469
- var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
1470
- var defaultDate = this._getDefaultDate(inst);
1471
- var html = '';
1472
- for (var row = 0; row < numMonths[0]; row++) {
1473
- var group = '';
1474
- this.maxRows = 4;
1475
- for (var col = 0; col < numMonths[1]; col++) {
1476
- var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
1477
- var cornerClass = ' ui-corner-all';
1478
- var calender = '';
1479
- if (isMultiMonth) {
1480
- calender += '<div class="ui-datepicker-group';
1481
- if (numMonths[1] > 1)
1482
- switch (col) {
1483
- case 0: calender += ' ui-datepicker-group-first';
1484
- cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
1485
- case numMonths[1]-1: calender += ' ui-datepicker-group-last';
1486
- cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
1487
- default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
1488
- }
1489
- calender += '">';
1490
- }
1491
- calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
1492
- (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
1493
- (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
1494
- this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
1495
- row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
1496
- '</div><table class="ui-datepicker-calendar"><thead>' +
1497
- '<tr>';
1498
- var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
1499
- for (var dow = 0; dow < 7; dow++) { // days of the week
1500
- var day = (dow + firstDay) % 7;
1501
- thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
1502
- '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
1503
- }
1504
- calender += thead + '</tr></thead><tbody>';
1505
- var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
1506
- if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
1507
- inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
1508
- var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
1509
- var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
1510
- var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
1511
- this.maxRows = numRows;
1512
- var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
1513
- for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
1514
- calender += '<tr>';
1515
- var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
1516
- this._get(inst, 'calculateWeek')(printDate) + '</td>');
1517
- for (var dow = 0; dow < 7; dow++) { // create date picker days
1518
- var daySettings = (beforeShowDay ?
1519
- beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
1520
- var otherMonth = (printDate.getMonth() != drawMonth);
1521
- var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
1522
- (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
1523
- tbody += '<td class="' +
1524
- ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
1525
- (otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
1526
- ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
1527
- (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
1528
- // or defaultDate is current printedDate and defaultDate is selectedDate
1529
- ' ' + this._dayOverClass : '') + // highlight selected day
1530
- (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') + // highlight unselectable days
1531
- (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
1532
- (printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day
1533
- (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
1534
- ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
1535
- (unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
1536
- inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions
1537
- (otherMonth && !showOtherMonths ? '&#xa0;' : // display for other months
1538
- (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
1539
- (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
1540
- (printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
1541
- (otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
1542
- '" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
1543
- printDate.setDate(printDate.getDate() + 1);
1544
- printDate = this._daylightSavingAdjust(printDate);
1545
- }
1546
- calender += tbody + '</tr>';
1547
- }
1548
- drawMonth++;
1549
- if (drawMonth > 11) {
1550
- drawMonth = 0;
1551
- drawYear++;
1552
- }
1553
- calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
1554
- ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
1555
- group += calender;
1556
- }
1557
- html += group;
1558
- }
1559
- html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
1560
- '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
1561
- inst._keyEvent = false;
1562
- return html;
1563
- },
1564
-
1565
- /* Generate the month and year header. */
1566
- _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
1567
- secondary, monthNames, monthNamesShort) {
1568
- var changeMonth = this._get(inst, 'changeMonth');
1569
- var changeYear = this._get(inst, 'changeYear');
1570
- var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
1571
- var html = '<div class="ui-datepicker-title">';
1572
- var monthHtml = '';
1573
- // month selection
1574
- if (secondary || !changeMonth)
1575
- monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
1576
- else {
1577
- var inMinYear = (minDate && minDate.getFullYear() == drawYear);
1578
- var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
1579
- monthHtml += '<select class="ui-datepicker-month" ' +
1580
- 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
1581
- 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
1582
- '>';
1583
- for (var month = 0; month < 12; month++) {
1584
- if ((!inMinYear || month >= minDate.getMonth()) &&
1585
- (!inMaxYear || month <= maxDate.getMonth()))
1586
- monthHtml += '<option value="' + month + '"' +
1587
- (month == drawMonth ? ' selected="selected"' : '') +
1588
- '>' + monthNamesShort[month] + '</option>';
1589
- }
1590
- monthHtml += '</select>';
1591
- }
1592
- if (!showMonthAfterYear)
1593
- html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
1594
- // year selection
1595
- if ( !inst.yearshtml ) {
1596
- inst.yearshtml = '';
1597
- if (secondary || !changeYear)
1598
- html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
1599
- else {
1600
- // determine range of years to display
1601
- var years = this._get(inst, 'yearRange').split(':');
1602
- var thisYear = new Date().getFullYear();
1603
- var determineYear = function(value) {
1604
- var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
1605
- (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
1606
- parseInt(value, 10)));
1607
- return (isNaN(year) ? thisYear : year);
1608
- };
1609
- var year = determineYear(years[0]);
1610
- var endYear = Math.max(year, determineYear(years[1] || ''));
1611
- year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
1612
- endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
1613
- inst.yearshtml += '<select class="ui-datepicker-year" ' +
1614
- 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
1615
- 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
1616
- '>';
1617
- for (; year <= endYear; year++) {
1618
- inst.yearshtml += '<option value="' + year + '"' +
1619
- (year == drawYear ? ' selected="selected"' : '') +
1620
- '>' + year + '</option>';
1621
- }
1622
- inst.yearshtml += '</select>';
1623
-
1624
- html += inst.yearshtml;
1625
- inst.yearshtml = null;
1626
- }
1627
- }
1628
- html += this._get(inst, 'yearSuffix');
1629
- if (showMonthAfterYear)
1630
- html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
1631
- html += '</div>'; // Close datepicker_header
1632
- return html;
1633
- },
1634
-
1635
- /* Adjust one of the date sub-fields. */
1636
- _adjustInstDate: function(inst, offset, period) {
1637
- var year = inst.drawYear + (period == 'Y' ? offset : 0);
1638
- var month = inst.drawMonth + (period == 'M' ? offset : 0);
1639
- var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
1640
- (period == 'D' ? offset : 0);
1641
- var date = this._restrictMinMax(inst,
1642
- this._daylightSavingAdjust(new Date(year, month, day)));
1643
- inst.selectedDay = date.getDate();
1644
- inst.drawMonth = inst.selectedMonth = date.getMonth();
1645
- inst.drawYear = inst.selectedYear = date.getFullYear();
1646
- if (period == 'M' || period == 'Y')
1647
- this._notifyChange(inst);
1648
- },
1649
-
1650
- /* Ensure a date is within any min/max bounds. */
1651
- _restrictMinMax: function(inst, date) {
1652
- var minDate = this._getMinMaxDate(inst, 'min');
1653
- var maxDate = this._getMinMaxDate(inst, 'max');
1654
- var newDate = (minDate && date < minDate ? minDate : date);
1655
- newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
1656
- return newDate;
1657
- },
1658
-
1659
- /* Notify change of month/year. */
1660
- _notifyChange: function(inst) {
1661
- var onChange = this._get(inst, 'onChangeMonthYear');
1662
- if (onChange)
1663
- onChange.apply((inst.input ? inst.input[0] : null),
1664
- [inst.selectedYear, inst.selectedMonth + 1, inst]);
1665
- },
1666
-
1667
- /* Determine the number of months to show. */
1668
- _getNumberOfMonths: function(inst) {
1669
- var numMonths = this._get(inst, 'numberOfMonths');
1670
- return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
1671
- },
1672
-
1673
- /* Determine the current maximum date - ensure no time components are set. */
1674
- _getMinMaxDate: function(inst, minMax) {
1675
- return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
1676
- },
1677
-
1678
- /* Find the number of days in a given month. */
1679
- _getDaysInMonth: function(year, month) {
1680
- return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
1681
- },
1682
-
1683
- /* Find the day of the week of the first of a month. */
1684
- _getFirstDayOfMonth: function(year, month) {
1685
- return new Date(year, month, 1).getDay();
1686
- },
1687
-
1688
- /* Determines if we should allow a "next/prev" month display change. */
1689
- _canAdjustMonth: function(inst, offset, curYear, curMonth) {
1690
- var numMonths = this._getNumberOfMonths(inst);
1691
- var date = this._daylightSavingAdjust(new Date(curYear,
1692
- curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
1693
- if (offset < 0)
1694
- date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
1695
- return this._isInRange(inst, date);
1696
- },
1697
-
1698
- /* Is the given date in the accepted range? */
1699
- _isInRange: function(inst, date) {
1700
- var minDate = this._getMinMaxDate(inst, 'min');
1701
- var maxDate = this._getMinMaxDate(inst, 'max');
1702
- return ((!minDate || date.getTime() >= minDate.getTime()) &&
1703
- (!maxDate || date.getTime() <= maxDate.getTime()));
1704
- },
1705
-
1706
- /* Provide the configuration settings for formatting/parsing. */
1707
- _getFormatConfig: function(inst) {
1708
- var shortYearCutoff = this._get(inst, 'shortYearCutoff');
1709
- shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
1710
- new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
1711
- return {shortYearCutoff: shortYearCutoff,
1712
- dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
1713
- monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
1714
- },
1715
-
1716
- /* Format the given date for display. */
1717
- _formatDate: function(inst, day, month, year) {
1718
- if (!day) {
1719
- inst.currentDay = inst.selectedDay;
1720
- inst.currentMonth = inst.selectedMonth;
1721
- inst.currentYear = inst.selectedYear;
1722
- }
1723
- var date = (day ? (typeof day == 'object' ? day :
1724
- this._daylightSavingAdjust(new Date(year, month, day))) :
1725
- this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
1726
- return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
1727
- }
1728
- });
1729
-
1730
- /*
1731
- * Bind hover events for datepicker elements.
1732
- * Done via delegate so the binding only occurs once in the lifetime of the parent div.
1733
- * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
1734
- */
1735
- function bindHover(dpDiv) {
1736
- var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
1737
- return dpDiv.bind('mouseout', function(event) {
1738
- var elem = $( event.target ).closest( selector );
1739
- if ( !elem.length ) {
1740
- return;
1741
- }
1742
- elem.removeClass( "ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover" );
1743
- })
1744
- .bind('mouseover', function(event) {
1745
- var elem = $( event.target ).closest( selector );
1746
- if ($.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) ||
1747
- !elem.length ) {
1748
- return;
1749
- }
1750
- elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
1751
- elem.addClass('ui-state-hover');
1752
- if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover');
1753
- if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover');
1754
- });
1755
- }
1756
-
1757
- /* jQuery extend now ignores nulls! */
1758
- function extendRemove(target, props) {
1759
- $.extend(target, props);
1760
- for (var name in props)
1761
- if (props[name] == null || props[name] == undefined)
1762
- target[name] = props[name];
1763
- return target;
1764
- };
1765
-
1766
- /* Determine whether an object is an array. */
1767
- function isArray(a) {
1768
- return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
1769
- (a.constructor && a.constructor.toString().match(/\Array\(\)/))));
1770
- };
1771
-
1772
- /* Invoke the datepicker functionality.
1773
- @param options string - a command, optionally followed by additional parameters or
1774
- Object - settings for attaching new datepicker functionality
1775
- @return jQuery object */
1776
- $.fn.datepicker = function(options){
1777
-
1778
- /* Verify an empty collection wasn't passed - Fixes #6976 */
1779
- if ( !this.length ) {
1780
- return this;
1781
- }
1782
-
1783
- /* Initialise the date picker. */
1784
- if (!$.datepicker.initialized) {
1785
- $(document).mousedown($.datepicker._checkExternalClick).
1786
- find('body').append($.datepicker.dpDiv);
1787
- $.datepicker.initialized = true;
1788
- }
1789
-
1790
- var otherArgs = Array.prototype.slice.call(arguments, 1);
1791
- if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
1792
- return $.datepicker['_' + options + 'Datepicker'].
1793
- apply($.datepicker, [this[0]].concat(otherArgs));
1794
- if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
1795
- return $.datepicker['_' + options + 'Datepicker'].
1796
- apply($.datepicker, [this[0]].concat(otherArgs));
1797
- return this.each(function() {
1798
- typeof options == 'string' ?
1799
- $.datepicker['_' + options + 'Datepicker'].
1800
- apply($.datepicker, [this].concat(otherArgs)) :
1801
- $.datepicker._attachDatepicker(this, options);
1802
- });
1803
- };
1804
-
1805
- $.datepicker = new Datepicker(); // singleton instance
1806
- $.datepicker.initialized = false;
1807
- $.datepicker.uuid = new Date().getTime();
1808
- $.datepicker.version = "1.8.14";
1809
-
1810
- // Workaround for #4055
1811
- // Add another global to avoid noConflict issues with inline event handlers
1812
- window['DP_jQuery_' + dpuuid] = $;
1813
-
1814
- })(jQuery);