date_picker 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (507) hide show
  1. checksums.yaml +4 -4
  2. data/lib/date_picker/form_tag_helper.rb +6 -8
  3. data/lib/date_picker/styles/bootstrap.rb +5 -3
  4. data/lib/date_picker/version.rb +1 -1
  5. data/test/date_picker_test.rb +1 -1
  6. data/test/dummy/app/views/events/_form.html.erb +7 -1
  7. data/test/dummy/bower.json +3 -1
  8. data/test/dummy/config/application.rb +1 -1
  9. data/test/dummy/config/locales/de.yml +25 -0
  10. data/test/dummy/db/development.sqlite3 +0 -0
  11. data/test/dummy/db/test.sqlite3 +0 -0
  12. data/test/dummy/log/development.log +7548 -0
  13. data/test/dummy/log/test.log +53 -0
  14. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/-8O4y3ggFiCS6l2ghfLx5jNhbai_agGSwvfw5E_nJxQ.cache +1 -0
  15. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/-f9DWVDMmQefFSDt3w15NNkm5qhvtdv7tX6ooxX2zxI.cache +1 -0
  16. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/0zlJMBhKmu2vTsTh22HNGBzzmrz2BbkHoX7Bh-GA1FA.cache +2 -0
  17. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1XpURRZplXvYz9QRtLNTxNtDNicIljEaZb1cDSFv2yM.cache +0 -0
  18. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/24GlbirhuBMtq5hQzhqV2Ilf1Ev8Yls56Tfd6eOfIrA.cache +0 -0
  19. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3Z8xnNl9CvkMrB_dJ80avERt0Z-X6QGLZ3A2UBj2BrE.cache +0 -0
  20. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3cDPl6PTkPKsB0zdEXtAm7Fb76RFeoxAsu9Kt350OAo.cache +0 -0
  21. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3cp1ZHjyynbgOQZ0EUfQi24MaYyMRKSTQXfYWVComzg.cache +1 -0
  22. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3k9SVw7U9eDuL5ifC76tTIyy9ilfd1t6y8NiyDscuf0.cache +2 -0
  23. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3tWDgQRBSflnIKdtBmjqAYO6r8efxsfw5TdqKkIzOHE.cache +1 -0
  24. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/3xcZe3mCzNkXedWyMjE0nMShsE8pATwd4Uh86cgou1s.cache +2 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/4J-csYAoBFMk9r8FNykt21jL7yxmlrGFJ_0tkn724-k.cache +1 -0
  26. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/60DImw8_vLj-GS_eapLxMy8XseVPyWLsKMq6vwXEIiU.cache +2 -0
  27. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6_XR-Ji3qhTT9pMPXWVNWqVpPqUVen7je6wBvVtzcho.cache +2 -0
  28. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8Gla90O5DBD8XC5MkUovJCnOEjKEzhmEJu9YQeRqCkQ.cache +0 -0
  29. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8HJegO8w1N1Q0bkS5ytzhlfIf282A-j0KsT5HCr-hWE.cache +0 -0
  30. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8Y5o1B5h76ega_UN-kzeK6J8E_luB_I_jkbZ6xTwYqw.cache +2 -0
  31. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/8bNflCb70VFtLkhKgmfwToXf4lGQMC_v84krWLs1ZxQ.cache +1 -0
  32. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9BKgxSB7mo33TdAqXUQPNHZi7WTN7BCs-mn2Miew7No.cache +1 -0
  33. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9JGo0_oO3xpvtpQaC5LFkfdsgmnVwAGUykUf31_C_FA.cache +0 -0
  34. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9b3K1dsznJBDoQDqx1BX6j4Of36xhNgo-s9jWckfP-A.cache +1 -0
  35. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9vLdecjoDCWzBMeglad75P98Ba7Hq19mjhcwuYPAmH8.cache +1 -0
  36. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/A4O74qFpxGHzHQqj9bKmjCi7ua1GfSwglfwRcxWwRuA.cache +1 -0
  37. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BBtzneBZJHY_6PR0T-pycx_1SdaGLtK_owvfyAntdhQ.cache +0 -0
  38. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BLMMn6WgXsOlHMbr_HD9RUGOZiO5vLHgqC-Ct1PqiEk.cache +1 -0
  39. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BjrLi-Lz5u1SonV2i1RxGZLcfVGoiWPwnFH1BAgnkxM.cache +3 -0
  40. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BpjsLldPl9ePUjrXxljqf_hInXfDlsDVOJ84YMTuX2Y.cache +1 -0
  41. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/BqmRx-MHVYpDBIkuIgM4FNTVIiLBzPsXlcHAo9hXuhA.cache +1 -0
  42. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/C308wuv9b9KYxwxJWy170pboOkJLmaSe1t1C4egeFsI.cache +2 -0
  43. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CK3buEyfWgn85lpjn_t4kPYdOdCsUQz-Hrr4BgRUwQ4.cache +0 -0
  44. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/CuCkvu3Jeo5ACaIKWJrFEzVZB8fJ_WiHRTx2l9VgdiI.cache +2 -0
  45. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/DILp9t2I7gWHM4Pg0SVykxsJahUXYw56tA0m5WMzBgk.cache +0 -0
  46. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/FUr483UlzOLGZIFj9ac9ZX7Dn5BpVWL8DkMRIFwlIfg.cache +1 -0
  47. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Fs9_IHkeyf7GH2s3YUqHuK-faomeogV1k4BcBYVqN6Q.cache +0 -0
  48. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Gh3kCIZ697-bjRUQj0qPNZi_1s10p3tGA0kmxb_6ROc.cache +1 -0
  49. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HLVHx_AitG-r1VEiC8q1o_T6qeuWrlPTJZEUHQyht6c.cache +0 -0
  50. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Jl72Zt-Z70pEOb1nCYRZxRh2T0WwxiuXHDZoM_d-Bys.cache +1 -0
  51. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/JoTYRw-PybCFOzpQ17g3IrpRjDWWqQ81gDRihYwFRcc.cache +1 -0
  52. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Jz9Lem-NdLiV9dyryNBakNfJlaM23-TQH8w2Pehu138.cache +0 -0
  53. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KSSV-U3BRH11y7AYH6cpBIzekvdv2RGE09_XdHrYv5s.cache +0 -0
  54. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/KqZ2q92hIfQUl3GnW8CqRVHCKheexmreTl0apZHM8UI.cache +0 -0
  55. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Lz99fLjXkuH6q9R892qYaIMb5993zrXkbSYtA5lEeS4.cache +0 -0
  56. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MYDV3QvTQrwKeNSlM8ToNaxyEiB8gVa0KzKNCY_hOzc.cache +2 -0
  57. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MaXmK6cb7Bx1FCpFJP-I0BqQruYTnTzppLSPcXnPUvo.cache +0 -0
  58. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/MhHWcd8OSJUsTgkCF6fjEkBNCzY61DulY9HN3ujVC3o.cache +2 -0
  59. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NF6mdbz0q1g__BVMvMBRVywdq5RVViHSuWa0LdanMrM.cache +4 -0
  60. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/NQijxdRa7AgvdyBAXd0fTbhlRV0w39r0kbwnJJ0XgKU.cache +1 -0
  61. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/O9Gy8UQxcmZhq-IXr6vZTnsdtCcN1dzcf4OdNkD-M_w.cache +1 -0
  62. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Obtf5KUGBNJmL81c6qS85hOgRlaw5dxus2x2gPrc_ZE.cache +0 -0
  63. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PB830Q15xKwu2t1G3_NHiFM29G0fRlJrg72VE5u8yj4.cache +2 -0
  64. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PQIPUFfEbEE7aX0flnscwetnEfd9OB13YLMVbel8008.cache +1 -0
  65. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PdZ5Vs1iZd77I9-bGbqLQnoGLSjzvvlVAPlZ0nWHwHo.cache +1 -0
  66. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Q2KLUe6DVaRnlMW6XCiur0AFrcyzmjpBxv2MO3uE_0M.cache +1 -0
  67. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Q2rDDQ6ocbRrhvsnU0RKuvX3YyvfWPAn3vKcJBVfAnI.cache +0 -0
  68. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/QK8O3pS2Jb2qPJ-iJ6lW4WIc8eQlcIUNnodA10UDOGo.cache +1 -0
  69. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/R0Lkjgl0uKryOMaQ0Tzf-TUoqkKvNeMMV0W9biwdbas.cache +2 -0
  70. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RQTkpFIOSqMhRZMJNGOmwY3o1_OpRZO89VrvKiR9bNI.cache +1 -0
  71. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/RdNKkePVAXRsJV6-m-R4t80fQLNdzFcLaC70FxAMCi0.cache +1 -0
  72. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SFeahljjYr8f5Tg3kP3dTw9kF0z4nHUgUKAT074-PZY.cache +4 -0
  73. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SGOoYGD3GXmXfS8XQKNXMl7WVbFcR9wob-D-2ys-nPI.cache +0 -0
  74. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/SR1wknvQIEbYT4BYyiDGnTJLG7q7avAS6DroliBv0yE.cache +1 -0
  75. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/TmGulbzd8gSTImhLSpuFV6EatPXBorzL9poqiWrtIpU.cache +2 -0
  76. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UDRMcPCBVMnweRpk2tGSdTIVADJepObiSHfZ2DfashI.cache +1 -0
  77. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UqNvwyvUC3aVfDxaNioW-yCAfpZ8jnpvtPOkUeJD3eg.cache +0 -0
  78. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/V8KUFs4dl_-NGILaekUOFgxw2JY7_1ZgvVqynZ1CpB4.cache +1 -0
  79. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Vi1BUwU5-mE7HlilaXhG_dpnRGnBz7R_HIK9UhnaeOY.cache +1 -0
  80. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Vklyj4FsNBpztN-p7tTLRRaahcINR8vVS09D7gi5DMw.cache +1 -0
  81. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/VtmmXvomtABaCeHM93t4NEseebW9dSNeA5cEyS3Af40.cache +1 -0
  82. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/WfSk-P5vx3b3d8gWdNmH4BI6rHnskkavagk3X9Aogzs.cache +1 -0
  83. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Wfp-4QANT1bfhxgiibtXxIfVeL7PJEIq1MGWaaws2N0.cache +0 -0
  84. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/XSfbbYsWtJwypHi89U1bfSIZEyegYJf-5oDWSLGaZmA.cache +2 -0
  85. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Y-36mIYz7K5IYk4ID9OgRSGUK9Zhmu69LbxfnuUrWx8.cache +1 -0
  86. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ZYvKNKkiia3C97DvaOdVaAbJgdns_waHuG7EYj1RP2M.cache +0 -0
  87. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Z_yKuBUYtzXtrctNQo8QToEg_JzOyyxOtMF3rJxc2y0.cache +2 -0
  88. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_FBWUqJqfCgoRSXkaoktBE0oMOHcSUvduSCj2B0opsg.cache +0 -0
  89. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/_iwslT0f8QN95KnYR6CNi5U_eAab8Gz-0_EI_3btpiI.cache +2 -0
  90. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/a0N1UQXZpzX_filUutCuja_HgoQEwkBL0to5oMleB-k.cache +1 -0
  91. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/a5_6hc5lPOLYmBtwRWnsqkgC_-XDBBxLu6qT4plQzjc.cache +1 -0
  92. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bVvNsjPFB5G_h33Qjx-y8L-pWXWpHWOH_afs3hIoChg.cache +1 -0
  93. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bYudJ58NQOvUj3zIa3sA_njeSuOgMmUk278q6GNcX_s.cache +0 -0
  94. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/bd1tr9XDUCQF8aIK8f6nWK-2tOV7H6-OspX83eEo-ys.cache +2 -0
  95. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/brxG22gqmq7pYyioKiT8fIRQAKwmYnLz7kRuCgRA4I4.cache +0 -0
  96. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/buVfBh11_A1bTMWTSFpTeTRWa29CXAXCaRLlaIlqnzY.cache +0 -0
  97. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/c9X_ULEajrC9zVkfHfawIWXEMFAsojFsaRH3LYLVkBE.cache +0 -0
  98. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/cc9SCNOyBL9zQabXOFAwymxrVXXqNYOLkR3gHqDDD7E.cache +1 -0
  99. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/czBt-vYOxNHRt9rHM-acZiB1zK6YQPQrN83va7QXkXs.cache +1 -0
  100. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/e84IQQ_PDYkCQLaFwEn-BuSDxFefWxUvM5_i7RqOp5Y.cache +1 -0
  101. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/eEMP73MQFBOXLaQy1jpKFMnASFdC54Pq9cQc8gUVfuc.cache +0 -0
  102. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/fVJwubwXFiysTnpkML5bY2m3HWcvf2Jrs62NWucHS9Q.cache +0 -0
  103. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/g-nVjVnlp6S9yFxrQHrXztZc_Sd0gy-F_V1sMRuQAgQ.cache +3 -0
  104. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/g0t8r5brGIlh4rPvOe5pl3TJ-2ens0erYZmEWHcJKnk.cache +0 -0
  105. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/g9HztOdoQIGG4o1d5QcZ2j8tKmXGJ59fq8JDFlPIm7w.cache +1 -0
  106. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gHIHRkP9KOyMAN-fmwL-yrOzUeFOnX1_HOw0iGdvqpQ.cache +1 -0
  107. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gV_HOGVndEexVaRaN43hDYnZRjFbKVgKkdbXtU7b0Rs.cache +2 -0
  108. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gXIqypbuCPBYVAngi0_uAkmFBUaSjO_576wuUGYkFZI.cache +0 -0
  109. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gmxgmvmfJZSsClEZW_Q8FBKBlzMxA9tQCS_HE5C2WG0.cache +1 -0
  110. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gv3vLdJaBO4yfP3MARPVKkqoGG5Nf_EO3xqalVglb0k.cache +2 -0
  111. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/h4p5PWuUgqM0XiRx5RpR1wRBim6pS1R4IbebL4wRYas.cache +2 -0
  112. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hIk1IbOpvMqqLDZI71ilM_d46VlvC00rT1Qmgx63V2E.cache +1 -0
  113. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hZH5UdM7h2ds4DjIAba38pHEg4lwAj3N1CGaOtbtRbg.cache +1 -0
  114. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/i-9lVfwhv2T6x0FCEU0LXvKAI1SiV3sgLILbo7qMk7M.cache +0 -0
  115. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/i9KFCgI-wFL4sUDyZvTLPZHcEG1QPXSKYmHR1L7Al9k.cache +1 -0
  116. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/iU8bFZigipY0VTXDupaNfeEYWXggqjVFwhA73bNnV6A.cache +0 -0
  117. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/i_rkUPFCl662aQV_ToZBfAhU3TldbvV-BdANe7LtDzE.cache +0 -0
  118. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/iaFuob7KOJeFZNWIH_Cg9yXUyWQbrnUsviqFDlMVtno.cache +1 -0
  119. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jFH5Zor-Nk8IWfIF8ARAsSaKRFsxew7oIghgtQOeqPg.cache +0 -0
  120. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/jazk3C2PL5GA4iB4RPp2rjopAFBpeVmz9YIUlCNfUZQ.cache +0 -0
  121. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/k_6_E39Fbrrm8gXSM4g_jn1SXl6PW0OmZVJNHAw4gX0.cache +1 -0
  122. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ktEdvRowtjkYUiyhscTON8BCGLXjPSNQjTDgQ26-gxk.cache +2 -0
  123. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/l5rARDMpLXvDCJUs5Z2_MhQGxPu7tTFIHi56ETkFBUs.cache +1 -0
  124. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lMFEMdDY3pQNj0SndXwq1TWJvRWmYTZuf_-vem5Qc-A.cache +0 -0
  125. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/l_868lTbFLSAuY9wb8i7SK3VSHYAH5--6SzigH7o_LI.cache +2 -0
  126. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lf2qq90kraNfS6BANybjI90sG5Ffgl1V7QkkanhBDkw.cache +0 -0
  127. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lhGtomNmls_7dWlloeghf533VnVvzdJGu2l40zovnK0.cache +1 -0
  128. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ls2uanW--NmFa73nm25bqGT6YjOhv4Obe0gQgX3aj44.cache +1 -0
  129. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/lyb5sE8Kx_VD44GEywtEEZJMF9F7XFkyEJEZIrs7jEE.cache +1 -0
  130. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/m4K7V_ayYBBS3lSbOpajng7wprQKcA4MbjgK5hcAKA8.cache +1 -0
  131. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/mbNi1zDMCTRJNvdx0elM7eg7sG2iD1lDwLQkQfPlSEE.cache +1 -0
  132. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/n7JI3B8GArysdoQ9sJ6Yks9LPVm-LVPXOFL16Dss1us.cache +2 -0
  133. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nuSfSDIWohqxJjgPkC__yFyAN33eb_z4nxePnzAj7H4.cache +1 -0
  134. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ny48GJC10WXxO2k_jef7U9ilETyMsu5FpArp8YEWHVk.cache +0 -0
  135. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nz7VHQVkCBnxYuNeBaUiIKdalHfrvLKDtkkli3qE57k.cache +1 -0
  136. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/o0p99xItzB4VOS_76lokZlvMDDtVIn7j-1iUb3kClHA.cache +1 -0
  137. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/odXdjGzmrY1I1KsCjHK5dSXMR-KFPIa57807UHbH_lI.cache +3 -0
  138. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/py-50N8JV8fW06AkQyHjFziT8tFQ9cyZXkO68OLg8FY.cache +3 -0
  139. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/q7IhSJmPr4XYN7bRTJydDdWeGSBStPXCsWwzAdRDHD8.cache +2 -0
  140. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qCOSGD7xiX9-kteobcTp66_qXwo9QHRjMWJl-Qw9StA.cache +1 -0
  141. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qrKLw4Q7NkMvRWgulVSe0Kj_KKxhy671Aaalr-DUE_k.cache +2 -0
  142. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qvRHbSFQ9VDD-JItDCFVlL1Mvmm26bXsSWtS1U87W9I.cache +1 -0
  143. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/qxZhpbIyOii2JGS53PxEluN8YBInSBss3g-JrdNgPPQ.cache +0 -0
  144. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/rxQc-Da-9M09OGyU296gIdlPPyTKUmV4KiVQ63Yx23I.cache +0 -0
  145. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/sOcoa0VB6ARE3CwAF7kYRVCSnbWcIdBomnA8pGHYm-4.cache +0 -0
  146. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/slmEfg4in_kWb9A6oVY7TkAO3f62TNWeb3h4vtLQfcU.cache +1 -0
  147. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tCT50N5Do922cFkvSMCG7vKRHZCExNRWIkZD8NzLN6A.cache +2 -0
  148. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tZ7h37lmYVkCeLKVHSLM8-sVUeZSbyZ_PqbNRCSzYHA.cache +2 -0
  149. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/t_RDkU91l12URIZKRcF-hLanzoBVaG7Pi6qURaxdqYs.cache +0 -0
  150. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tcY6IFGUDaT9KmDhBeR0RdIr3Ed-VYhQiB7iytLlZu4.cache +0 -0
  151. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uWXKfyOWFxNF1L6l2JgRdfmXZnyCEiU321YAB3wEbtc.cache +3 -0
  152. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/ucbZp464hD75mlyMdSwKeF-a-thTGRZ7THKF1SYZfYA.cache +1 -0
  153. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/uuIcKYWUaGhBUUfnAntK6fnjC4i5l03giUT_wmCycZw.cache +1 -0
  154. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/v1UmYJ7PkH0Ssdd9SZhuXshj3pttgN5UQ11pWVetnQc.cache +1 -0
  155. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/vmwuvvOYLAyd84b0m1AbA3SgZe4caQhjZ9V46RXEeDg.cache +2 -0
  156. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/w3QfyLfuKDoiuR2gC1enoQ1nEIRQZ6pFUbKSbanS6Uw.cache +1 -0
  157. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wRJA55IL-4AIoAxqO6XMVJR8ekmLIXSne2yX0qcSIEE.cache +1 -0
  158. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xXsiV0MYcgdOWTftYrEED0Amz65HDjoKT75l9TwJrIE.cache +0 -0
  159. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xmTYhndaOC_PRB6RVAstS9XCMwlgAspAJJGpuCUMQDg.cache +1 -0
  160. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/xpn5l5da7G2TbW372NK2JTdbXGsKlHB01g6s2TTt1oo.cache +0 -0
  161. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/yRjeulc3ZS_4eVw4cM0RKkVAUxRpcllyheRFC0da1Rs.cache +1 -0
  162. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/z0tBQnKRTnwBuuViUrZbkFeXR_lIziIeL6i-PY9mH6o.cache +1 -0
  163. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/z28u48LbS2VjftnbUy-XPJIMUJ1bUii253vK00Wb4Ws.cache +1 -0
  164. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/z6IgqnYyw9bfqQs-4nEt6MEHZd23cvpMqtv2uCyV59U.cache +2 -0
  165. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zEVQeKm2isr6lCET0roS4JjlhUoe99MamB080eOtSTc.cache +2 -0
  166. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zWCGKXOngOYarRrijlIxsjj3_Cy7_5Ns4OXQF-V2hP4.cache +1 -0
  167. data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/zsYBQ3-U4eYcrR2ovZXchbRnYrLRbIngl-q1loSpZUE.cache +2 -0
  168. data/test/dummy/vendor/assets/components/bootstrap/Gruntfile.js +38 -18
  169. data/test/dummy/vendor/assets/components/bootstrap/README.md +13 -10
  170. data/test/dummy/vendor/assets/components/bootstrap/bower.json +3 -8
  171. data/test/dummy/vendor/assets/components/bootstrap/dist/css/bootstrap-theme.css +125 -14
  172. data/test/dummy/vendor/assets/components/bootstrap/dist/css/bootstrap-theme.css.map +1 -1
  173. data/test/dummy/vendor/assets/components/bootstrap/dist/css/bootstrap-theme.min.css +2 -2
  174. data/test/dummy/vendor/assets/components/bootstrap/dist/css/bootstrap.css +292 -76
  175. data/test/dummy/vendor/assets/components/bootstrap/dist/css/bootstrap.css.map +1 -1
  176. data/test/dummy/vendor/assets/components/bootstrap/dist/css/bootstrap.min.css +2 -2
  177. data/test/dummy/vendor/assets/components/bootstrap/dist/js/bootstrap.js +143 -97
  178. data/test/dummy/vendor/assets/components/bootstrap/dist/js/bootstrap.min.js +4 -4
  179. data/test/dummy/vendor/assets/components/bootstrap/grunt/bs-commonjs-generator.js +9 -2
  180. data/test/dummy/vendor/assets/components/bootstrap/grunt/bs-glyphicons-data-generator.js +4 -3
  181. data/test/dummy/vendor/assets/components/bootstrap/grunt/bs-lessdoc-parser.js +6 -7
  182. data/test/dummy/vendor/assets/components/bootstrap/grunt/bs-raw-files-generator.js +6 -8
  183. data/test/dummy/vendor/assets/components/bootstrap/grunt/configBridge.json +1 -1
  184. data/test/dummy/vendor/assets/components/bootstrap/grunt/sauce_browsers.yml +1 -1
  185. data/test/dummy/vendor/assets/components/bootstrap/js/affix.js +3 -3
  186. data/test/dummy/vendor/assets/components/bootstrap/js/alert.js +2 -2
  187. data/test/dummy/vendor/assets/components/bootstrap/js/button.js +13 -9
  188. data/test/dummy/vendor/assets/components/bootstrap/js/carousel.js +2 -2
  189. data/test/dummy/vendor/assets/components/bootstrap/js/collapse.js +2 -2
  190. data/test/dummy/vendor/assets/components/bootstrap/js/dropdown.js +46 -42
  191. data/test/dummy/vendor/assets/components/bootstrap/js/modal.js +5 -7
  192. data/test/dummy/vendor/assets/components/bootstrap/js/popover.js +2 -2
  193. data/test/dummy/vendor/assets/components/bootstrap/js/scrollspy.js +2 -2
  194. data/test/dummy/vendor/assets/components/bootstrap/js/tab.js +5 -3
  195. data/test/dummy/vendor/assets/components/bootstrap/js/tooltip.js +58 -20
  196. data/test/dummy/vendor/assets/components/bootstrap/js/transition.js +1 -1
  197. data/test/dummy/vendor/assets/components/bootstrap/less/badges.less +1 -1
  198. data/test/dummy/vendor/assets/components/bootstrap/less/bootstrap.less +6 -0
  199. data/test/dummy/vendor/assets/components/bootstrap/less/button-groups.less +3 -2
  200. data/test/dummy/vendor/assets/components/bootstrap/less/buttons.less +11 -5
  201. data/test/dummy/vendor/assets/components/bootstrap/less/carousel.less +2 -2
  202. data/test/dummy/vendor/assets/components/bootstrap/less/dropdowns.less +3 -1
  203. data/test/dummy/vendor/assets/components/bootstrap/less/forms.less +44 -11
  204. data/test/dummy/vendor/assets/components/bootstrap/less/input-groups.less +1 -0
  205. data/test/dummy/vendor/assets/components/bootstrap/less/jumbotron.less +5 -3
  206. data/test/dummy/vendor/assets/components/bootstrap/less/list-group.less +9 -3
  207. data/test/dummy/vendor/assets/components/bootstrap/less/media.less +5 -0
  208. data/test/dummy/vendor/assets/components/bootstrap/less/mixins.less +1 -0
  209. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/background-variant.less +2 -1
  210. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/buttons.less +18 -2
  211. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/grid-framework.less +2 -2
  212. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/grid.less +2 -2
  213. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/hide-text.less +1 -1
  214. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/list-group.less +2 -1
  215. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/pagination.less +2 -1
  216. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/reset-text.less +18 -0
  217. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/responsive-visibility.less +1 -1
  218. data/test/dummy/vendor/assets/components/bootstrap/less/mixins/text-emphasis.less +2 -1
  219. data/test/dummy/vendor/assets/components/bootstrap/less/normalize.less +8 -11
  220. data/test/dummy/vendor/assets/components/bootstrap/less/pagination.less +3 -2
  221. data/test/dummy/vendor/assets/components/bootstrap/less/panels.less +6 -0
  222. data/test/dummy/vendor/assets/components/bootstrap/less/popovers.less +4 -8
  223. data/test/dummy/vendor/assets/components/bootstrap/less/print.less +0 -6
  224. data/test/dummy/vendor/assets/components/bootstrap/less/scaffolding.less +1 -2
  225. data/test/dummy/vendor/assets/components/bootstrap/less/theme.less +23 -5
  226. data/test/dummy/vendor/assets/components/bootstrap/less/tooltip.less +4 -5
  227. data/test/dummy/vendor/assets/components/bootstrap/less/variables.less +7 -1
  228. data/test/dummy/vendor/assets/components/bootstrap/package.js +5 -2
  229. data/test/dummy/vendor/assets/components/bootstrap/package.json +26 -32
  230. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/CONTRIBUTING.md +1 -0
  231. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/Gruntfile.js +42 -45
  232. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/README.md +11 -4
  233. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/bower.json +3 -2
  234. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker-standalone.css +103 -0
  235. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css +3 -2
  236. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css +2 -369
  237. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js +3 -4
  238. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/component.json +1 -1
  239. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/composer.json +1 -1
  240. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/ChangeLog.md +222 -0
  241. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/ContributorsGuide.md +126 -0
  242. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/Events.md +96 -0
  243. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/Extras.md +95 -0
  244. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/FAQ.md +22 -0
  245. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/Functions.md +670 -0
  246. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/Installing.md +161 -0
  247. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/Options.md +473 -0
  248. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/Version 4 Changelog.md +6 -0
  249. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/Version 4 Contributors guide.md +6 -0
  250. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/docs/index.md +592 -0
  251. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/mkdocs.yml +17 -0
  252. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/package.json +41 -41
  253. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js +189 -64
  254. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/src/less/_bootstrap-datetimepicker.less +3 -2
  255. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/src/less/bootstrap-datetimepicker-build.less +1 -1
  256. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/src/nuget/Bootstrap.v3.Datetimepicker.CSS.nuspec +6 -2
  257. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/src/nuget/Bootstrap.v3.Datetimepicker.nuspec +8 -4
  258. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/src/nuget/install.ps1 +1 -1
  259. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/src/sass/_bootstrap-datetimepicker.scss +11 -11
  260. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/tasks/bump_version.js +7 -7
  261. data/test/dummy/vendor/assets/components/jquery/bower.json +2 -1
  262. data/test/dummy/vendor/assets/components/jquery/dist/jquery.js +9 -4
  263. data/test/dummy/vendor/assets/components/jquery/dist/jquery.min.js +4 -4
  264. data/test/dummy/vendor/assets/components/jquery/dist/jquery.min.map +1 -1
  265. data/test/dummy/vendor/assets/components/jquery/src/core.js +6 -1
  266. data/test/dummy/vendor/assets/components/moment-timezone/LICENSE +20 -0
  267. data/test/dummy/vendor/assets/components/moment-timezone/README.md +36 -0
  268. data/test/dummy/vendor/assets/components/moment-timezone/bower.json +19 -0
  269. data/test/dummy/vendor/assets/components/moment-timezone/builds/moment-timezone-with-data-2010-2020.js +1015 -0
  270. data/test/dummy/vendor/assets/components/moment-timezone/builds/moment-timezone-with-data-2010-2020.min.js +6 -0
  271. data/test/dummy/vendor/assets/components/moment-timezone/builds/moment-timezone-with-data.js +1015 -0
  272. data/test/dummy/vendor/assets/components/moment-timezone/builds/moment-timezone-with-data.min.js +7 -0
  273. data/test/dummy/vendor/assets/components/moment-timezone/builds/moment-timezone.min.js +6 -0
  274. data/test/dummy/vendor/assets/components/moment-timezone/changelog.md +82 -0
  275. data/test/dummy/vendor/assets/components/moment-timezone/composer.json +43 -0
  276. data/test/dummy/vendor/assets/components/moment-timezone/data/meta/latest.json +5012 -0
  277. data/test/dummy/vendor/assets/components/moment-timezone/data/packed/latest.json +589 -0
  278. data/test/dummy/vendor/assets/components/moment-timezone/data/unpacked/latest.json +123054 -0
  279. data/test/dummy/vendor/assets/components/moment-timezone/moment-timezone-utils.js +288 -0
  280. data/test/dummy/vendor/assets/components/moment-timezone/moment-timezone.js +426 -0
  281. data/test/dummy/vendor/assets/components/moment/CHANGELOG.md +24 -0
  282. data/test/dummy/vendor/assets/components/moment/LICENSE +1 -1
  283. data/test/dummy/vendor/assets/components/moment/README.md +3 -0
  284. data/test/dummy/vendor/assets/components/moment/bower.json +6 -4
  285. data/test/dummy/vendor/assets/components/moment/locale/af.js +3 -3
  286. data/test/dummy/vendor/assets/components/moment/locale/ar-ma.js +3 -3
  287. data/test/dummy/vendor/assets/components/moment/locale/ar-sa.js +2 -2
  288. data/test/dummy/vendor/assets/components/moment/locale/ar-tn.js +3 -3
  289. data/test/dummy/vendor/assets/components/moment/locale/ar.js +4 -4
  290. data/test/dummy/vendor/assets/components/moment/locale/az.js +3 -3
  291. data/test/dummy/vendor/assets/components/moment/locale/be.js +3 -3
  292. data/test/dummy/vendor/assets/components/moment/locale/bg.js +3 -3
  293. data/test/dummy/vendor/assets/components/moment/locale/bn.js +4 -4
  294. data/test/dummy/vendor/assets/components/moment/locale/bo.js +3 -3
  295. data/test/dummy/vendor/assets/components/moment/locale/br.js +2 -2
  296. data/test/dummy/vendor/assets/components/moment/locale/bs.js +3 -3
  297. data/test/dummy/vendor/assets/components/moment/locale/ca.js +2 -2
  298. data/test/dummy/vendor/assets/components/moment/locale/cs.js +3 -3
  299. data/test/dummy/vendor/assets/components/moment/locale/cv.js +23 -23
  300. data/test/dummy/vendor/assets/components/moment/locale/cy.js +3 -3
  301. data/test/dummy/vendor/assets/components/moment/locale/da.js +3 -3
  302. data/test/dummy/vendor/assets/components/moment/locale/de-at.js +2 -2
  303. data/test/dummy/vendor/assets/components/moment/locale/de.js +2 -2
  304. data/test/dummy/vendor/assets/components/moment/locale/el.js +2 -2
  305. data/test/dummy/vendor/assets/components/moment/locale/en-au.js +2 -2
  306. data/test/dummy/vendor/assets/components/moment/locale/en-ca.js +2 -2
  307. data/test/dummy/vendor/assets/components/moment/locale/en-gb.js +2 -2
  308. data/test/dummy/vendor/assets/components/moment/locale/eo.js +3 -3
  309. data/test/dummy/vendor/assets/components/moment/locale/es.js +8 -8
  310. data/test/dummy/vendor/assets/components/moment/locale/et.js +3 -3
  311. data/test/dummy/vendor/assets/components/moment/locale/eu.js +5 -5
  312. data/test/dummy/vendor/assets/components/moment/locale/fa.js +3 -3
  313. data/test/dummy/vendor/assets/components/moment/locale/fi.js +4 -4
  314. data/test/dummy/vendor/assets/components/moment/locale/fo.js +3 -3
  315. data/test/dummy/vendor/assets/components/moment/locale/fr-ca.js +5 -5
  316. data/test/dummy/vendor/assets/components/moment/locale/fr.js +3 -3
  317. data/test/dummy/vendor/assets/components/moment/locale/fy.js +3 -3
  318. data/test/dummy/vendor/assets/components/moment/locale/gl.js +3 -3
  319. data/test/dummy/vendor/assets/components/moment/locale/he.js +5 -5
  320. data/test/dummy/vendor/assets/components/moment/locale/hi.js +2 -2
  321. data/test/dummy/vendor/assets/components/moment/locale/hr.js +5 -5
  322. data/test/dummy/vendor/assets/components/moment/locale/hu.js +3 -3
  323. data/test/dummy/vendor/assets/components/moment/locale/hy-am.js +3 -3
  324. data/test/dummy/vendor/assets/components/moment/locale/id.js +3 -3
  325. data/test/dummy/vendor/assets/components/moment/locale/is.js +3 -3
  326. data/test/dummy/vendor/assets/components/moment/locale/it.js +3 -3
  327. data/test/dummy/vendor/assets/components/moment/locale/ja.js +3 -3
  328. data/test/dummy/vendor/assets/components/moment/locale/jv.js +82 -0
  329. data/test/dummy/vendor/assets/components/moment/locale/ka.js +2 -2
  330. data/test/dummy/vendor/assets/components/moment/locale/km.js +3 -3
  331. data/test/dummy/vendor/assets/components/moment/locale/ko.js +2 -2
  332. data/test/dummy/vendor/assets/components/moment/locale/lb.js +2 -2
  333. data/test/dummy/vendor/assets/components/moment/locale/lt.js +16 -6
  334. data/test/dummy/vendor/assets/components/moment/locale/lv.js +36 -19
  335. data/test/dummy/vendor/assets/components/moment/locale/me.js +108 -0
  336. data/test/dummy/vendor/assets/components/moment/locale/mk.js +3 -3
  337. data/test/dummy/vendor/assets/components/moment/locale/ml.js +2 -2
  338. data/test/dummy/vendor/assets/components/moment/locale/mr.js +2 -2
  339. data/test/dummy/vendor/assets/components/moment/locale/ms-my.js +3 -3
  340. data/test/dummy/vendor/assets/components/moment/locale/ms.js +81 -0
  341. data/test/dummy/vendor/assets/components/moment/locale/my.js +5 -4
  342. data/test/dummy/vendor/assets/components/moment/locale/nb.js +3 -3
  343. data/test/dummy/vendor/assets/components/moment/locale/ne.js +2 -2
  344. data/test/dummy/vendor/assets/components/moment/locale/nl.js +3 -3
  345. data/test/dummy/vendor/assets/components/moment/locale/nn.js +3 -3
  346. data/test/dummy/vendor/assets/components/moment/locale/pl.js +9 -4
  347. data/test/dummy/vendor/assets/components/moment/locale/pt-br.js +9 -9
  348. data/test/dummy/vendor/assets/components/moment/locale/pt.js +8 -8
  349. data/test/dummy/vendor/assets/components/moment/locale/ro.js +1 -1
  350. data/test/dummy/vendor/assets/components/moment/locale/ru.js +3 -3
  351. data/test/dummy/vendor/assets/components/moment/locale/si.js +64 -0
  352. data/test/dummy/vendor/assets/components/moment/locale/sk.js +3 -3
  353. data/test/dummy/vendor/assets/components/moment/locale/sl.js +52 -39
  354. data/test/dummy/vendor/assets/components/moment/locale/sq.js +3 -3
  355. data/test/dummy/vendor/assets/components/moment/locale/sr-cyrl.js +3 -3
  356. data/test/dummy/vendor/assets/components/moment/locale/sr.js +3 -3
  357. data/test/dummy/vendor/assets/components/moment/locale/sv.js +5 -5
  358. data/test/dummy/vendor/assets/components/moment/locale/ta.js +3 -3
  359. data/test/dummy/vendor/assets/components/moment/locale/th.js +3 -3
  360. data/test/dummy/vendor/assets/components/moment/locale/tl-ph.js +3 -3
  361. data/test/dummy/vendor/assets/components/moment/locale/tr.js +3 -3
  362. data/test/dummy/vendor/assets/components/moment/locale/tzl.js +84 -0
  363. data/test/dummy/vendor/assets/components/moment/locale/tzm-latn.js +3 -3
  364. data/test/dummy/vendor/assets/components/moment/locale/tzm.js +3 -3
  365. data/test/dummy/vendor/assets/components/moment/locale/uk.js +3 -3
  366. data/test/dummy/vendor/assets/components/moment/locale/uz.js +3 -3
  367. data/test/dummy/vendor/assets/components/moment/locale/vi.js +5 -5
  368. data/test/dummy/vendor/assets/components/moment/locale/zh-cn.js +15 -15
  369. data/test/dummy/vendor/assets/components/moment/locale/zh-tw.js +5 -5
  370. data/test/dummy/vendor/assets/components/moment/min/locales.js +759 -344
  371. data/test/dummy/vendor/assets/components/moment/min/locales.min.js +14 -13
  372. data/test/dummy/vendor/assets/components/moment/min/moment-with-locales.js +1060 -532
  373. data/test/dummy/vendor/assets/components/moment/min/moment-with-locales.min.js +21 -20
  374. data/test/dummy/vendor/assets/components/moment/min/moment.min.js +3 -3
  375. data/test/dummy/vendor/assets/components/moment/min/tests.js +3573 -1245
  376. data/test/dummy/vendor/assets/components/moment/moment.js +300 -188
  377. data/test/dummy/vendor/assets/components/moment/src/lib/create/check-overflow.js +4 -3
  378. data/test/dummy/vendor/assets/components/moment/src/lib/create/from-anything.js +15 -12
  379. data/test/dummy/vendor/assets/components/moment/src/lib/create/from-array.js +2 -1
  380. data/test/dummy/vendor/assets/components/moment/src/lib/create/from-string-and-array.js +5 -6
  381. data/test/dummy/vendor/assets/components/moment/src/lib/create/from-string-and-format.js +12 -9
  382. data/test/dummy/vendor/assets/components/moment/src/lib/create/from-string.js +5 -4
  383. data/test/dummy/vendor/assets/components/moment/src/lib/create/{default-parsing-flags.js → parsing-flags.js} +8 -1
  384. data/test/dummy/vendor/assets/components/moment/src/lib/create/valid.js +14 -11
  385. data/test/dummy/vendor/assets/components/moment/src/lib/duration/as.js +9 -9
  386. data/test/dummy/vendor/assets/components/moment/src/lib/duration/bubble.js +23 -16
  387. data/test/dummy/vendor/assets/components/moment/src/lib/duration/iso-string.js +30 -6
  388. data/test/dummy/vendor/assets/components/moment/src/lib/format/format.js +2 -5
  389. data/test/dummy/vendor/assets/components/moment/src/lib/locale/formats.js +13 -9
  390. data/test/dummy/vendor/assets/components/moment/src/lib/locale/locales.js +1 -3
  391. data/test/dummy/vendor/assets/components/moment/src/lib/locale/set.js +1 -1
  392. data/test/dummy/vendor/assets/components/moment/src/lib/moment/calendar.js +2 -2
  393. data/test/dummy/vendor/assets/components/moment/src/lib/moment/constructor.js +4 -3
  394. data/test/dummy/vendor/assets/components/moment/src/lib/moment/from.js +3 -0
  395. data/test/dummy/vendor/assets/components/moment/src/lib/moment/min-max.js +1 -1
  396. data/test/dummy/vendor/assets/components/moment/src/lib/moment/prototype.js +5 -1
  397. data/test/dummy/vendor/assets/components/moment/src/lib/moment/to-type.js +13 -0
  398. data/test/dummy/vendor/assets/components/moment/src/lib/moment/to.js +13 -0
  399. data/test/dummy/vendor/assets/components/moment/src/lib/moment/valid.js +3 -2
  400. data/test/dummy/vendor/assets/components/moment/src/lib/parse/regex.js +8 -1
  401. data/test/dummy/vendor/assets/components/moment/src/lib/units/day-of-week.js +16 -15
  402. data/test/dummy/vendor/assets/components/moment/src/lib/units/day-of-year.js +9 -9
  403. data/test/dummy/vendor/assets/components/moment/src/lib/units/hour.js +2 -1
  404. data/test/dummy/vendor/assets/components/moment/src/lib/units/millisecond.js +30 -8
  405. data/test/dummy/vendor/assets/components/moment/src/lib/units/month.js +2 -1
  406. data/test/dummy/vendor/assets/components/moment/src/lib/units/offset.js +19 -12
  407. data/test/dummy/vendor/assets/components/moment/src/lib/units/year.js +4 -2
  408. data/test/dummy/vendor/assets/components/moment/src/lib/utils/abs-ceil.js +7 -0
  409. data/test/dummy/vendor/assets/components/moment/src/lib/utils/deprecate.js +2 -1
  410. data/test/dummy/vendor/assets/components/moment/src/lib/utils/is-date.js +1 -1
  411. data/test/dummy/vendor/assets/components/moment/src/lib/utils/to-int.js +3 -5
  412. data/test/dummy/vendor/assets/components/moment/src/lib/utils/zero-fill.js +4 -6
  413. data/test/dummy/vendor/assets/components/moment/src/locale/af.js +3 -3
  414. data/test/dummy/vendor/assets/components/moment/src/locale/ar-ma.js +3 -3
  415. data/test/dummy/vendor/assets/components/moment/src/locale/ar-sa.js +2 -2
  416. data/test/dummy/vendor/assets/components/moment/src/locale/ar-tn.js +3 -3
  417. data/test/dummy/vendor/assets/components/moment/src/locale/ar.js +4 -4
  418. data/test/dummy/vendor/assets/components/moment/src/locale/az.js +3 -3
  419. data/test/dummy/vendor/assets/components/moment/src/locale/be.js +3 -3
  420. data/test/dummy/vendor/assets/components/moment/src/locale/bg.js +3 -3
  421. data/test/dummy/vendor/assets/components/moment/src/locale/bn.js +4 -4
  422. data/test/dummy/vendor/assets/components/moment/src/locale/bo.js +3 -3
  423. data/test/dummy/vendor/assets/components/moment/src/locale/br.js +2 -2
  424. data/test/dummy/vendor/assets/components/moment/src/locale/bs.js +3 -3
  425. data/test/dummy/vendor/assets/components/moment/src/locale/ca.js +2 -2
  426. data/test/dummy/vendor/assets/components/moment/src/locale/cs.js +3 -3
  427. data/test/dummy/vendor/assets/components/moment/src/locale/cv.js +23 -24
  428. data/test/dummy/vendor/assets/components/moment/src/locale/cy.js +3 -3
  429. data/test/dummy/vendor/assets/components/moment/src/locale/da.js +3 -3
  430. data/test/dummy/vendor/assets/components/moment/src/locale/de-at.js +2 -2
  431. data/test/dummy/vendor/assets/components/moment/src/locale/de.js +2 -2
  432. data/test/dummy/vendor/assets/components/moment/src/locale/el.js +2 -2
  433. data/test/dummy/vendor/assets/components/moment/src/locale/en-au.js +2 -2
  434. data/test/dummy/vendor/assets/components/moment/src/locale/en-ca.js +2 -2
  435. data/test/dummy/vendor/assets/components/moment/src/locale/en-gb.js +2 -2
  436. data/test/dummy/vendor/assets/components/moment/src/locale/eo.js +3 -3
  437. data/test/dummy/vendor/assets/components/moment/src/locale/es.js +8 -8
  438. data/test/dummy/vendor/assets/components/moment/src/locale/et.js +3 -3
  439. data/test/dummy/vendor/assets/components/moment/src/locale/eu.js +5 -5
  440. data/test/dummy/vendor/assets/components/moment/src/locale/fa.js +3 -3
  441. data/test/dummy/vendor/assets/components/moment/src/locale/fi.js +4 -4
  442. data/test/dummy/vendor/assets/components/moment/src/locale/fo.js +3 -3
  443. data/test/dummy/vendor/assets/components/moment/src/locale/fr-ca.js +5 -5
  444. data/test/dummy/vendor/assets/components/moment/src/locale/fr.js +3 -3
  445. data/test/dummy/vendor/assets/components/moment/src/locale/fy.js +3 -3
  446. data/test/dummy/vendor/assets/components/moment/src/locale/gl.js +3 -3
  447. data/test/dummy/vendor/assets/components/moment/src/locale/he.js +5 -5
  448. data/test/dummy/vendor/assets/components/moment/src/locale/hi.js +2 -2
  449. data/test/dummy/vendor/assets/components/moment/src/locale/hr.js +5 -5
  450. data/test/dummy/vendor/assets/components/moment/src/locale/hu.js +3 -3
  451. data/test/dummy/vendor/assets/components/moment/src/locale/hy-am.js +3 -3
  452. data/test/dummy/vendor/assets/components/moment/src/locale/id.js +3 -3
  453. data/test/dummy/vendor/assets/components/moment/src/locale/is.js +3 -3
  454. data/test/dummy/vendor/assets/components/moment/src/locale/it.js +3 -3
  455. data/test/dummy/vendor/assets/components/moment/src/locale/ja.js +3 -3
  456. data/test/dummy/vendor/assets/components/moment/src/locale/jv.js +73 -0
  457. data/test/dummy/vendor/assets/components/moment/src/locale/ka.js +2 -2
  458. data/test/dummy/vendor/assets/components/moment/src/locale/km.js +3 -3
  459. data/test/dummy/vendor/assets/components/moment/src/locale/ko.js +2 -2
  460. data/test/dummy/vendor/assets/components/moment/src/locale/lb.js +2 -2
  461. data/test/dummy/vendor/assets/components/moment/src/locale/lt.js +16 -6
  462. data/test/dummy/vendor/assets/components/moment/src/locale/lv.js +36 -19
  463. data/test/dummy/vendor/assets/components/moment/src/locale/me.js +99 -0
  464. data/test/dummy/vendor/assets/components/moment/src/locale/mk.js +3 -3
  465. data/test/dummy/vendor/assets/components/moment/src/locale/ml.js +2 -2
  466. data/test/dummy/vendor/assets/components/moment/src/locale/mr.js +2 -2
  467. data/test/dummy/vendor/assets/components/moment/src/locale/ms-my.js +3 -3
  468. data/test/dummy/vendor/assets/components/moment/src/locale/ms.js +73 -0
  469. data/test/dummy/vendor/assets/components/moment/src/locale/my.js +5 -4
  470. data/test/dummy/vendor/assets/components/moment/src/locale/nb.js +3 -3
  471. data/test/dummy/vendor/assets/components/moment/src/locale/ne.js +2 -2
  472. data/test/dummy/vendor/assets/components/moment/src/locale/nl.js +3 -3
  473. data/test/dummy/vendor/assets/components/moment/src/locale/nn.js +3 -3
  474. data/test/dummy/vendor/assets/components/moment/src/locale/pl.js +9 -5
  475. data/test/dummy/vendor/assets/components/moment/src/locale/pt-br.js +9 -9
  476. data/test/dummy/vendor/assets/components/moment/src/locale/pt.js +8 -8
  477. data/test/dummy/vendor/assets/components/moment/src/locale/ro.js +1 -1
  478. data/test/dummy/vendor/assets/components/moment/src/locale/ru.js +3 -3
  479. data/test/dummy/vendor/assets/components/moment/src/locale/si.js +56 -0
  480. data/test/dummy/vendor/assets/components/moment/src/locale/sk.js +3 -3
  481. data/test/dummy/vendor/assets/components/moment/src/locale/sl.js +52 -40
  482. data/test/dummy/vendor/assets/components/moment/src/locale/sq.js +3 -3
  483. data/test/dummy/vendor/assets/components/moment/src/locale/sr-cyrl.js +3 -3
  484. data/test/dummy/vendor/assets/components/moment/src/locale/sr.js +3 -3
  485. data/test/dummy/vendor/assets/components/moment/src/locale/sv.js +5 -5
  486. data/test/dummy/vendor/assets/components/moment/src/locale/ta.js +3 -3
  487. data/test/dummy/vendor/assets/components/moment/src/locale/th.js +3 -3
  488. data/test/dummy/vendor/assets/components/moment/src/locale/tl-ph.js +3 -3
  489. data/test/dummy/vendor/assets/components/moment/src/locale/tr.js +3 -3
  490. data/test/dummy/vendor/assets/components/moment/src/locale/tzl.js +78 -0
  491. data/test/dummy/vendor/assets/components/moment/src/locale/tzm-latn.js +3 -3
  492. data/test/dummy/vendor/assets/components/moment/src/locale/tzm.js +3 -3
  493. data/test/dummy/vendor/assets/components/moment/src/locale/uk.js +3 -3
  494. data/test/dummy/vendor/assets/components/moment/src/locale/uz.js +3 -3
  495. data/test/dummy/vendor/assets/components/moment/src/locale/vi.js +5 -5
  496. data/test/dummy/vendor/assets/components/moment/src/locale/zh-cn.js +15 -15
  497. data/test/dummy/vendor/assets/components/moment/src/locale/zh-tw.js +5 -6
  498. data/test/dummy/vendor/assets/components/moment/src/moment.js +2 -2
  499. metadata +404 -20
  500. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/build/nuget/Bootstrap.v3.Datetimepicker.4.0.0.nupkg +0 -0
  501. data/test/dummy/vendor/assets/components/eonasdan-bootstrap-datetimepicker/build/nuget/Bootstrap.v3.Datetimepicker.CSS.4.0.0.nupkg +0 -0
  502. data/test/dummy/vendor/assets/components/moment/Moment.js.nuspec +0 -28
  503. data/test/dummy/vendor/assets/components/moment/benchmarks/clone.js +0 -10
  504. data/test/dummy/vendor/assets/components/moment/meteor/README.md +0 -25
  505. data/test/dummy/vendor/assets/components/moment/meteor/export.js +0 -3
  506. data/test/dummy/vendor/assets/components/moment/meteor/test.js +0 -5
  507. data/test/dummy/vendor/assets/components/moment/scripts/npm_prepublish.sh +0 -43
@@ -1,5 +1,5 @@
1
1
  //! moment.js
2
- //! version : 2.10.2
2
+ //! version : 2.10.6
3
3
  //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
4
4
  //! license : MIT
5
5
  //! momentjs.com
@@ -22,28 +22,12 @@
22
22
  hookCallback = callback;
23
23
  }
24
24
 
25
- function defaultParsingFlags() {
26
- // We need to deep clone this object.
27
- return {
28
- empty : false,
29
- unusedTokens : [],
30
- unusedInput : [],
31
- overflow : -2,
32
- charsLeftOver : 0,
33
- nullInput : false,
34
- invalidMonth : null,
35
- invalidFormat : false,
36
- userInvalidated : false,
37
- iso : false
38
- };
39
- }
40
-
41
25
  function isArray(input) {
42
26
  return Object.prototype.toString.call(input) === '[object Array]';
43
27
  }
44
28
 
45
29
  function isDate(input) {
46
- return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date;
30
+ return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
47
31
  }
48
32
 
49
33
  function map(arr, fn) {
@@ -80,21 +64,46 @@
80
64
  return createLocalOrUTC(input, format, locale, strict, true).utc();
81
65
  }
82
66
 
67
+ function defaultParsingFlags() {
68
+ // We need to deep clone this object.
69
+ return {
70
+ empty : false,
71
+ unusedTokens : [],
72
+ unusedInput : [],
73
+ overflow : -2,
74
+ charsLeftOver : 0,
75
+ nullInput : false,
76
+ invalidMonth : null,
77
+ invalidFormat : false,
78
+ userInvalidated : false,
79
+ iso : false
80
+ };
81
+ }
82
+
83
+ function getParsingFlags(m) {
84
+ if (m._pf == null) {
85
+ m._pf = defaultParsingFlags();
86
+ }
87
+ return m._pf;
88
+ }
89
+
83
90
  function valid__isValid(m) {
84
91
  if (m._isValid == null) {
92
+ var flags = getParsingFlags(m);
85
93
  m._isValid = !isNaN(m._d.getTime()) &&
86
- m._pf.overflow < 0 &&
87
- !m._pf.empty &&
88
- !m._pf.invalidMonth &&
89
- !m._pf.nullInput &&
90
- !m._pf.invalidFormat &&
91
- !m._pf.userInvalidated;
94
+ flags.overflow < 0 &&
95
+ !flags.empty &&
96
+ !flags.invalidMonth &&
97
+ !flags.invalidWeekday &&
98
+ !flags.nullInput &&
99
+ !flags.invalidFormat &&
100
+ !flags.userInvalidated;
92
101
 
93
102
  if (m._strict) {
94
103
  m._isValid = m._isValid &&
95
- m._pf.charsLeftOver === 0 &&
96
- m._pf.unusedTokens.length === 0 &&
97
- m._pf.bigHour === undefined;
104
+ flags.charsLeftOver === 0 &&
105
+ flags.unusedTokens.length === 0 &&
106
+ flags.bigHour === undefined;
98
107
  }
99
108
  }
100
109
  return m._isValid;
@@ -103,10 +112,10 @@
103
112
  function valid__createInvalid (flags) {
104
113
  var m = create_utc__createUTC(NaN);
105
114
  if (flags != null) {
106
- extend(m._pf, flags);
115
+ extend(getParsingFlags(m), flags);
107
116
  }
108
117
  else {
109
- m._pf.userInvalidated = true;
118
+ getParsingFlags(m).userInvalidated = true;
110
119
  }
111
120
 
112
121
  return m;
@@ -142,7 +151,7 @@
142
151
  to._offset = from._offset;
143
152
  }
144
153
  if (typeof from._pf !== 'undefined') {
145
- to._pf = from._pf;
154
+ to._pf = getParsingFlags(from);
146
155
  }
147
156
  if (typeof from._locale !== 'undefined') {
148
157
  to._locale = from._locale;
@@ -166,7 +175,7 @@
166
175
  // Moment prototype object
167
176
  function Moment(config) {
168
177
  copyConfig(this, config);
169
- this._d = new Date(+config._d);
178
+ this._d = new Date(config._d != null ? config._d.getTime() : NaN);
170
179
  // Prevent infinite loop in case updateOffset creates new moment
171
180
  // objects.
172
181
  if (updateInProgress === false) {
@@ -177,7 +186,15 @@
177
186
  }
178
187
 
179
188
  function isMoment (obj) {
180
- return obj instanceof Moment || (obj != null && hasOwnProp(obj, '_isAMomentObject'));
189
+ return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
190
+ }
191
+
192
+ function absFloor (number) {
193
+ if (number < 0) {
194
+ return Math.ceil(number);
195
+ } else {
196
+ return Math.floor(number);
197
+ }
181
198
  }
182
199
 
183
200
  function toInt(argumentForCoercion) {
@@ -185,11 +202,7 @@
185
202
  value = 0;
186
203
 
187
204
  if (coercedNumber !== 0 && isFinite(coercedNumber)) {
188
- if (coercedNumber >= 0) {
189
- value = Math.floor(coercedNumber);
190
- } else {
191
- value = Math.ceil(coercedNumber);
192
- }
205
+ value = absFloor(coercedNumber);
193
206
  }
194
207
 
195
208
  return value;
@@ -287,9 +300,7 @@
287
300
  function defineLocale (name, values) {
288
301
  if (values !== null) {
289
302
  values.abbr = name;
290
- if (!locales[name]) {
291
- locales[name] = new Locale();
292
- }
303
+ locales[name] = locales[name] || new Locale();
293
304
  locales[name].set(values);
294
305
 
295
306
  // backwards compat for now: also set the locale
@@ -393,16 +404,14 @@
393
404
  }
394
405
 
395
406
  function zeroFill(number, targetLength, forceSign) {
396
- var output = '' + Math.abs(number),
407
+ var absNumber = '' + Math.abs(number),
408
+ zerosToFill = targetLength - absNumber.length,
397
409
  sign = number >= 0;
398
-
399
- while (output.length < targetLength) {
400
- output = '0' + output;
401
- }
402
- return (sign ? (forceSign ? '+' : '') : '-') + output;
410
+ return (sign ? (forceSign ? '+' : '') : '-') +
411
+ Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
403
412
  }
404
413
 
405
- var formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g;
414
+ var formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
406
415
 
407
416
  var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
408
417
 
@@ -470,10 +479,7 @@
470
479
  }
471
480
 
472
481
  format = expandFormat(format, m.localeData());
473
-
474
- if (!formatFunctions[format]) {
475
- formatFunctions[format] = makeFormatFunction(format);
476
- }
482
+ formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
477
483
 
478
484
  return formatFunctions[format](m);
479
485
  }
@@ -517,8 +523,15 @@
517
523
 
518
524
  var regexes = {};
519
525
 
526
+ function isFunction (sth) {
527
+ // https://github.com/moment/moment/issues/2325
528
+ return typeof sth === 'function' &&
529
+ Object.prototype.toString.call(sth) === '[object Function]';
530
+ }
531
+
532
+
520
533
  function addRegexToken (token, regex, strictRegex) {
521
- regexes[token] = typeof regex === 'function' ? regex : function (isStrict) {
534
+ regexes[token] = isFunction(regex) ? regex : function (isStrict) {
522
535
  return (isStrict && strictRegex) ? strictRegex : regex;
523
536
  };
524
537
  }
@@ -615,7 +628,7 @@
615
628
  if (month != null) {
616
629
  array[MONTH] = month;
617
630
  } else {
618
- config._pf.invalidMonth = input;
631
+ getParsingFlags(config).invalidMonth = input;
619
632
  }
620
633
  });
621
634
 
@@ -699,7 +712,7 @@
699
712
  var overflow;
700
713
  var a = m._a;
701
714
 
702
- if (a && m._pf.overflow === -2) {
715
+ if (a && getParsingFlags(m).overflow === -2) {
703
716
  overflow =
704
717
  a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :
705
718
  a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
@@ -709,11 +722,11 @@
709
722
  a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
710
723
  -1;
711
724
 
712
- if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
725
+ if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
713
726
  overflow = DATE;
714
727
  }
715
728
 
716
- m._pf.overflow = overflow;
729
+ getParsingFlags(m).overflow = overflow;
717
730
  }
718
731
 
719
732
  return m;
@@ -727,9 +740,10 @@
727
740
 
728
741
  function deprecate(msg, fn) {
729
742
  var firstTime = true;
743
+
730
744
  return extend(function () {
731
745
  if (firstTime) {
732
- warn(msg);
746
+ warn(msg + '\n' + (new Error()).stack);
733
747
  firstTime = false;
734
748
  }
735
749
  return fn.apply(this, arguments);
@@ -774,17 +788,17 @@
774
788
  match = from_string__isoRegex.exec(string);
775
789
 
776
790
  if (match) {
777
- config._pf.iso = true;
791
+ getParsingFlags(config).iso = true;
778
792
  for (i = 0, l = isoDates.length; i < l; i++) {
779
793
  if (isoDates[i][1].exec(string)) {
780
- // match[5] should be 'T' or undefined
781
- config._f = isoDates[i][0] + (match[6] || ' ');
794
+ config._f = isoDates[i][0];
782
795
  break;
783
796
  }
784
797
  }
785
798
  for (i = 0, l = isoTimes.length; i < l; i++) {
786
799
  if (isoTimes[i][1].exec(string)) {
787
- config._f += isoTimes[i][0];
800
+ // match[6] should be 'T' or space
801
+ config._f += (match[6] || ' ') + isoTimes[i][0];
788
802
  break;
789
803
  }
790
804
  }
@@ -863,7 +877,10 @@
863
877
  addRegexToken('YYYYY', match1to6, match6);
864
878
  addRegexToken('YYYYYY', match1to6, match6);
865
879
 
866
- addParseToken(['YYYY', 'YYYYY', 'YYYYYY'], YEAR);
880
+ addParseToken(['YYYYY', 'YYYYYY'], YEAR);
881
+ addParseToken('YYYY', function (input, array) {
882
+ array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input);
883
+ });
867
884
  addParseToken('YY', function (input, array) {
868
885
  array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input);
869
886
  });
@@ -990,18 +1007,18 @@
990
1007
 
991
1008
  //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
992
1009
  function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
993
- var d = createUTCDate(year, 0, 1).getUTCDay();
994
- var daysToAdd;
995
- var dayOfYear;
1010
+ var week1Jan = 6 + firstDayOfWeek - firstDayOfWeekOfYear, janX = createUTCDate(year, 0, 1 + week1Jan), d = janX.getUTCDay(), dayOfYear;
1011
+ if (d < firstDayOfWeek) {
1012
+ d += 7;
1013
+ }
1014
+
1015
+ weekday = weekday != null ? 1 * weekday : firstDayOfWeek;
996
1016
 
997
- d = d === 0 ? 7 : d;
998
- weekday = weekday != null ? weekday : firstDayOfWeek;
999
- daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0);
1000
- dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1;
1017
+ dayOfYear = 1 + week1Jan + 7 * (week - 1) - d + weekday;
1001
1018
 
1002
1019
  return {
1003
- year : dayOfYear > 0 ? year : year - 1,
1004
- dayOfYear : dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear
1020
+ year: dayOfYear > 0 ? year : year - 1,
1021
+ dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear
1005
1022
  };
1006
1023
  }
1007
1024
 
@@ -1054,7 +1071,7 @@
1054
1071
  yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
1055
1072
 
1056
1073
  if (config._dayOfYear > daysInYear(yearToUse)) {
1057
- config._pf._overflowDayOfYear = true;
1074
+ getParsingFlags(config)._overflowDayOfYear = true;
1058
1075
  }
1059
1076
 
1060
1077
  date = createUTCDate(yearToUse, 0, config._dayOfYear);
@@ -1150,7 +1167,7 @@
1150
1167
  }
1151
1168
 
1152
1169
  config._a = [];
1153
- config._pf.empty = true;
1170
+ getParsingFlags(config).empty = true;
1154
1171
 
1155
1172
  // This array is used to make a Date, either with `new Date` or `Date.UTC`
1156
1173
  var string = '' + config._i,
@@ -1166,7 +1183,7 @@
1166
1183
  if (parsedInput) {
1167
1184
  skipped = string.substr(0, string.indexOf(parsedInput));
1168
1185
  if (skipped.length > 0) {
1169
- config._pf.unusedInput.push(skipped);
1186
+ getParsingFlags(config).unusedInput.push(skipped);
1170
1187
  }
1171
1188
  string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
1172
1189
  totalParsedInputLength += parsedInput.length;
@@ -1174,27 +1191,29 @@
1174
1191
  // don't parse if it's not a known token
1175
1192
  if (formatTokenFunctions[token]) {
1176
1193
  if (parsedInput) {
1177
- config._pf.empty = false;
1194
+ getParsingFlags(config).empty = false;
1178
1195
  }
1179
1196
  else {
1180
- config._pf.unusedTokens.push(token);
1197
+ getParsingFlags(config).unusedTokens.push(token);
1181
1198
  }
1182
1199
  addTimeToArrayFromToken(token, parsedInput, config);
1183
1200
  }
1184
1201
  else if (config._strict && !parsedInput) {
1185
- config._pf.unusedTokens.push(token);
1202
+ getParsingFlags(config).unusedTokens.push(token);
1186
1203
  }
1187
1204
  }
1188
1205
 
1189
1206
  // add remaining unparsed input length to the string
1190
- config._pf.charsLeftOver = stringLength - totalParsedInputLength;
1207
+ getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
1191
1208
  if (string.length > 0) {
1192
- config._pf.unusedInput.push(string);
1209
+ getParsingFlags(config).unusedInput.push(string);
1193
1210
  }
1194
1211
 
1195
1212
  // clear _12h flag if hour is <= 12
1196
- if (config._pf.bigHour === true && config._a[HOUR] <= 12) {
1197
- config._pf.bigHour = undefined;
1213
+ if (getParsingFlags(config).bigHour === true &&
1214
+ config._a[HOUR] <= 12 &&
1215
+ config._a[HOUR] > 0) {
1216
+ getParsingFlags(config).bigHour = undefined;
1198
1217
  }
1199
1218
  // handle meridiem
1200
1219
  config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
@@ -1238,7 +1257,7 @@
1238
1257
  currentScore;
1239
1258
 
1240
1259
  if (config._f.length === 0) {
1241
- config._pf.invalidFormat = true;
1260
+ getParsingFlags(config).invalidFormat = true;
1242
1261
  config._d = new Date(NaN);
1243
1262
  return;
1244
1263
  }
@@ -1249,7 +1268,6 @@
1249
1268
  if (config._useUTC != null) {
1250
1269
  tempConfig._useUTC = config._useUTC;
1251
1270
  }
1252
- tempConfig._pf = defaultParsingFlags();
1253
1271
  tempConfig._f = config._f[i];
1254
1272
  configFromStringAndFormat(tempConfig);
1255
1273
 
@@ -1258,12 +1276,12 @@
1258
1276
  }
1259
1277
 
1260
1278
  // if there is any input that was not parsed add a penalty for that format
1261
- currentScore += tempConfig._pf.charsLeftOver;
1279
+ currentScore += getParsingFlags(tempConfig).charsLeftOver;
1262
1280
 
1263
1281
  //or tokens
1264
- currentScore += tempConfig._pf.unusedTokens.length * 10;
1282
+ currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
1265
1283
 
1266
- tempConfig._pf.score = currentScore;
1284
+ getParsingFlags(tempConfig).score = currentScore;
1267
1285
 
1268
1286
  if (scoreToBeat == null || currentScore < scoreToBeat) {
1269
1287
  scoreToBeat = currentScore;
@@ -1286,9 +1304,19 @@
1286
1304
  }
1287
1305
 
1288
1306
  function createFromConfig (config) {
1307
+ var res = new Moment(checkOverflow(prepareConfig(config)));
1308
+ if (res._nextDay) {
1309
+ // Adding is smart enough around DST
1310
+ res.add(1, 'd');
1311
+ res._nextDay = undefined;
1312
+ }
1313
+
1314
+ return res;
1315
+ }
1316
+
1317
+ function prepareConfig (config) {
1289
1318
  var input = config._i,
1290
- format = config._f,
1291
- res;
1319
+ format = config._f;
1292
1320
 
1293
1321
  config._locale = config._locale || locale_locales__getLocale(config._l);
1294
1322
 
@@ -1306,18 +1334,13 @@
1306
1334
  configFromStringAndArray(config);
1307
1335
  } else if (format) {
1308
1336
  configFromStringAndFormat(config);
1337
+ } else if (isDate(input)) {
1338
+ config._d = input;
1309
1339
  } else {
1310
1340
  configFromInput(config);
1311
1341
  }
1312
1342
 
1313
- res = new Moment(checkOverflow(config));
1314
- if (res._nextDay) {
1315
- // Adding is smart enough around DST
1316
- res.add(1, 'd');
1317
- res._nextDay = undefined;
1318
- }
1319
-
1320
- return res;
1343
+ return config;
1321
1344
  }
1322
1345
 
1323
1346
  function configFromInput(config) {
@@ -1358,7 +1381,6 @@
1358
1381
  c._i = input;
1359
1382
  c._f = format;
1360
1383
  c._strict = strict;
1361
- c._pf = defaultParsingFlags();
1362
1384
 
1363
1385
  return createFromConfig(c);
1364
1386
  }
@@ -1398,7 +1420,7 @@
1398
1420
  }
1399
1421
  res = moments[0];
1400
1422
  for (i = 1; i < moments.length; ++i) {
1401
- if (moments[i][fn](res)) {
1423
+ if (!moments[i].isValid() || moments[i][fn](res)) {
1402
1424
  res = moments[i];
1403
1425
  }
1404
1426
  }
@@ -1510,7 +1532,6 @@
1510
1532
  } else {
1511
1533
  return local__createLocal(input).local();
1512
1534
  }
1513
- return model._isUTC ? local__createLocal(input).zone(model._offset || 0) : local__createLocal(input).local();
1514
1535
  }
1515
1536
 
1516
1537
  function getDateOffset (m) {
@@ -1610,12 +1631,7 @@
1610
1631
  }
1611
1632
 
1612
1633
  function hasAlignedHourOffset (input) {
1613
- if (!input) {
1614
- input = 0;
1615
- }
1616
- else {
1617
- input = local__createLocal(input).utcOffset();
1618
- }
1634
+ input = input ? local__createLocal(input).utcOffset() : 0;
1619
1635
 
1620
1636
  return (this.utcOffset() - input) % 60 === 0;
1621
1637
  }
@@ -1628,12 +1644,24 @@
1628
1644
  }
1629
1645
 
1630
1646
  function isDaylightSavingTimeShifted () {
1631
- if (this._a) {
1632
- var other = this._isUTC ? create_utc__createUTC(this._a) : local__createLocal(this._a);
1633
- return this.isValid() && compareArrays(this._a, other.toArray()) > 0;
1647
+ if (typeof this._isDSTShifted !== 'undefined') {
1648
+ return this._isDSTShifted;
1649
+ }
1650
+
1651
+ var c = {};
1652
+
1653
+ copyConfig(c, this);
1654
+ c = prepareConfig(c);
1655
+
1656
+ if (c._a) {
1657
+ var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a);
1658
+ this._isDSTShifted = this.isValid() &&
1659
+ compareArrays(c._a, other.toArray()) > 0;
1660
+ } else {
1661
+ this._isDSTShifted = false;
1634
1662
  }
1635
1663
 
1636
- return false;
1664
+ return this._isDSTShifted;
1637
1665
  }
1638
1666
 
1639
1667
  function isLocal () {
@@ -1793,7 +1821,7 @@
1793
1821
  var add_subtract__add = createAdder(1, 'add');
1794
1822
  var add_subtract__subtract = createAdder(-1, 'subtract');
1795
1823
 
1796
- function moment_calendar__calendar (time) {
1824
+ function moment_calendar__calendar (time, formats) {
1797
1825
  // We want to compare the start of today, vs this.
1798
1826
  // Getting start-of-today depends on whether we're local/utc/offset or not.
1799
1827
  var now = time || local__createLocal(),
@@ -1805,7 +1833,7 @@
1805
1833
  diff < 1 ? 'sameDay' :
1806
1834
  diff < 2 ? 'nextDay' :
1807
1835
  diff < 7 ? 'nextWeek' : 'sameElse';
1808
- return this.format(this.localeData().calendar(format, this, local__createLocal(now)));
1836
+ return this.format(formats && formats[format] || this.localeData().calendar(format, this, local__createLocal(now)));
1809
1837
  }
1810
1838
 
1811
1839
  function clone () {
@@ -1852,14 +1880,6 @@
1852
1880
  }
1853
1881
  }
1854
1882
 
1855
- function absFloor (number) {
1856
- if (number < 0) {
1857
- return Math.ceil(number);
1858
- } else {
1859
- return Math.floor(number);
1860
- }
1861
- }
1862
-
1863
1883
  function diff (input, units, asFloat) {
1864
1884
  var that = cloneWithOffset(input, this),
1865
1885
  zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4,
@@ -1932,6 +1952,9 @@
1932
1952
  }
1933
1953
 
1934
1954
  function from (time, withoutSuffix) {
1955
+ if (!this.isValid()) {
1956
+ return this.localeData().invalidDate();
1957
+ }
1935
1958
  return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
1936
1959
  }
1937
1960
 
@@ -1939,6 +1962,17 @@
1939
1962
  return this.from(local__createLocal(), withoutSuffix);
1940
1963
  }
1941
1964
 
1965
+ function to (time, withoutSuffix) {
1966
+ if (!this.isValid()) {
1967
+ return this.localeData().invalidDate();
1968
+ }
1969
+ return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
1970
+ }
1971
+
1972
+ function toNow (withoutSuffix) {
1973
+ return this.to(local__createLocal(), withoutSuffix);
1974
+ }
1975
+
1942
1976
  function locale (key) {
1943
1977
  var newLocaleData;
1944
1978
 
@@ -2036,16 +2070,29 @@
2036
2070
  return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
2037
2071
  }
2038
2072
 
2073
+ function toObject () {
2074
+ var m = this;
2075
+ return {
2076
+ years: m.year(),
2077
+ months: m.month(),
2078
+ date: m.date(),
2079
+ hours: m.hours(),
2080
+ minutes: m.minutes(),
2081
+ seconds: m.seconds(),
2082
+ milliseconds: m.milliseconds()
2083
+ };
2084
+ }
2085
+
2039
2086
  function moment_valid__isValid () {
2040
2087
  return valid__isValid(this);
2041
2088
  }
2042
2089
 
2043
2090
  function parsingFlags () {
2044
- return extend({}, this._pf);
2091
+ return extend({}, getParsingFlags(this));
2045
2092
  }
2046
2093
 
2047
2094
  function invalidAt () {
2048
- return this._pf.overflow;
2095
+ return getParsingFlags(this).overflow;
2049
2096
  }
2050
2097
 
2051
2098
  addFormatToken(0, ['gg', 2], 0, function () {
@@ -2196,7 +2243,7 @@
2196
2243
  if (weekday != null) {
2197
2244
  week.d = weekday;
2198
2245
  } else {
2199
- config._pf.invalidWeekday = input;
2246
+ getParsingFlags(config).invalidWeekday = input;
2200
2247
  }
2201
2248
  });
2202
2249
 
@@ -2207,18 +2254,20 @@
2207
2254
  // HELPERS
2208
2255
 
2209
2256
  function parseWeekday(input, locale) {
2210
- if (typeof input === 'string') {
2211
- if (!isNaN(input)) {
2212
- input = parseInt(input, 10);
2213
- }
2214
- else {
2215
- input = locale.weekdaysParse(input);
2216
- if (typeof input !== 'number') {
2217
- return null;
2218
- }
2219
- }
2257
+ if (typeof input !== 'string') {
2258
+ return input;
2220
2259
  }
2221
- return input;
2260
+
2261
+ if (!isNaN(input)) {
2262
+ return parseInt(input, 10);
2263
+ }
2264
+
2265
+ input = locale.weekdaysParse(input);
2266
+ if (typeof input === 'number') {
2267
+ return input;
2268
+ }
2269
+
2270
+ return null;
2222
2271
  }
2223
2272
 
2224
2273
  // LOCALES
@@ -2241,9 +2290,7 @@
2241
2290
  function localeWeekdaysParse (weekdayName) {
2242
2291
  var i, mom, regex;
2243
2292
 
2244
- if (!this._weekdaysParse) {
2245
- this._weekdaysParse = [];
2246
- }
2293
+ this._weekdaysParse = this._weekdaysParse || [];
2247
2294
 
2248
2295
  for (i = 0; i < 7; i++) {
2249
2296
  // make the regex if we don't have it already
@@ -2321,7 +2368,7 @@
2321
2368
  });
2322
2369
  addParseToken(['h', 'hh'], function (input, array, config) {
2323
2370
  array[HOUR] = toInt(input);
2324
- config._pf.bigHour = true;
2371
+ getParsingFlags(config).bigHour = true;
2325
2372
  });
2326
2373
 
2327
2374
  // LOCALES
@@ -2390,12 +2437,26 @@
2390
2437
  return ~~(this.millisecond() / 10);
2391
2438
  });
2392
2439
 
2393
- function millisecond__milliseconds (token) {
2394
- addFormatToken(0, [token, 3], 0, 'millisecond');
2395
- }
2440
+ addFormatToken(0, ['SSS', 3], 0, 'millisecond');
2441
+ addFormatToken(0, ['SSSS', 4], 0, function () {
2442
+ return this.millisecond() * 10;
2443
+ });
2444
+ addFormatToken(0, ['SSSSS', 5], 0, function () {
2445
+ return this.millisecond() * 100;
2446
+ });
2447
+ addFormatToken(0, ['SSSSSS', 6], 0, function () {
2448
+ return this.millisecond() * 1000;
2449
+ });
2450
+ addFormatToken(0, ['SSSSSSS', 7], 0, function () {
2451
+ return this.millisecond() * 10000;
2452
+ });
2453
+ addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
2454
+ return this.millisecond() * 100000;
2455
+ });
2456
+ addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
2457
+ return this.millisecond() * 1000000;
2458
+ });
2396
2459
 
2397
- millisecond__milliseconds('SSS');
2398
- millisecond__milliseconds('SSSS');
2399
2460
 
2400
2461
  // ALIASES
2401
2462
 
@@ -2406,11 +2467,19 @@
2406
2467
  addRegexToken('S', match1to3, match1);
2407
2468
  addRegexToken('SS', match1to3, match2);
2408
2469
  addRegexToken('SSS', match1to3, match3);
2409
- addRegexToken('SSSS', matchUnsigned);
2410
- addParseToken(['S', 'SS', 'SSS', 'SSSS'], function (input, array) {
2470
+
2471
+ var token;
2472
+ for (token = 'SSSS'; token.length <= 9; token += 'S') {
2473
+ addRegexToken(token, matchUnsigned);
2474
+ }
2475
+
2476
+ function parseMs(input, array) {
2411
2477
  array[MILLISECOND] = toInt(('0.' + input) * 1000);
2412
- });
2478
+ }
2413
2479
 
2480
+ for (token = 'S'; token.length <= 9; token += 'S') {
2481
+ addParseToken(token, parseMs);
2482
+ }
2414
2483
  // MOMENTS
2415
2484
 
2416
2485
  var getSetMillisecond = makeGetSet('Milliseconds', false);
@@ -2438,6 +2507,8 @@
2438
2507
  momentPrototype__proto.format = format;
2439
2508
  momentPrototype__proto.from = from;
2440
2509
  momentPrototype__proto.fromNow = fromNow;
2510
+ momentPrototype__proto.to = to;
2511
+ momentPrototype__proto.toNow = toNow;
2441
2512
  momentPrototype__proto.get = getSet;
2442
2513
  momentPrototype__proto.invalidAt = invalidAt;
2443
2514
  momentPrototype__proto.isAfter = isAfter;
@@ -2455,6 +2526,7 @@
2455
2526
  momentPrototype__proto.startOf = startOf;
2456
2527
  momentPrototype__proto.subtract = add_subtract__subtract;
2457
2528
  momentPrototype__proto.toArray = toArray;
2529
+ momentPrototype__proto.toObject = toObject;
2458
2530
  momentPrototype__proto.toDate = toDate;
2459
2531
  momentPrototype__proto.toISOString = moment_format__toISOString;
2460
2532
  momentPrototype__proto.toJSON = moment_format__toISOString;
@@ -2554,19 +2626,23 @@
2554
2626
  LT : 'h:mm A',
2555
2627
  L : 'MM/DD/YYYY',
2556
2628
  LL : 'MMMM D, YYYY',
2557
- LLL : 'MMMM D, YYYY LT',
2558
- LLLL : 'dddd, MMMM D, YYYY LT'
2629
+ LLL : 'MMMM D, YYYY h:mm A',
2630
+ LLLL : 'dddd, MMMM D, YYYY h:mm A'
2559
2631
  };
2560
2632
 
2561
2633
  function longDateFormat (key) {
2562
- var output = this._longDateFormat[key];
2563
- if (!output && this._longDateFormat[key.toUpperCase()]) {
2564
- output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) {
2565
- return val.slice(1);
2566
- });
2567
- this._longDateFormat[key] = output;
2634
+ var format = this._longDateFormat[key],
2635
+ formatUpper = this._longDateFormat[key.toUpperCase()];
2636
+
2637
+ if (format || !formatUpper) {
2638
+ return format;
2568
2639
  }
2569
- return output;
2640
+
2641
+ this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
2642
+ return val.slice(1);
2643
+ });
2644
+
2645
+ return this._longDateFormat[key];
2570
2646
  }
2571
2647
 
2572
2648
  var defaultInvalidDate = 'Invalid date';
@@ -2626,7 +2702,7 @@
2626
2702
  }
2627
2703
  // Lenient ordinal parsing accepts just a number in addition to
2628
2704
  // number + (possibly) stuff coming from _ordinalParseLenient.
2629
- this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source);
2705
+ this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source);
2630
2706
  }
2631
2707
 
2632
2708
  var prototype__proto = Locale.prototype;
@@ -2775,12 +2851,29 @@
2775
2851
  return duration_add_subtract__addSubtract(this, input, value, -1);
2776
2852
  }
2777
2853
 
2854
+ function absCeil (number) {
2855
+ if (number < 0) {
2856
+ return Math.floor(number);
2857
+ } else {
2858
+ return Math.ceil(number);
2859
+ }
2860
+ }
2861
+
2778
2862
  function bubble () {
2779
2863
  var milliseconds = this._milliseconds;
2780
2864
  var days = this._days;
2781
2865
  var months = this._months;
2782
2866
  var data = this._data;
2783
- var seconds, minutes, hours, years = 0;
2867
+ var seconds, minutes, hours, years, monthsFromDays;
2868
+
2869
+ // if we have a mix of positive and negative values, bubble down first
2870
+ // check: https://github.com/moment/moment/issues/2166
2871
+ if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
2872
+ (milliseconds <= 0 && days <= 0 && months <= 0))) {
2873
+ milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
2874
+ days = 0;
2875
+ months = 0;
2876
+ }
2784
2877
 
2785
2878
  // The following code bubbles up values, see the tests for
2786
2879
  // examples of what that means.
@@ -2797,17 +2890,13 @@
2797
2890
 
2798
2891
  days += absFloor(hours / 24);
2799
2892
 
2800
- // Accurately convert days to years, assume start from year 0.
2801
- years = absFloor(daysToYears(days));
2802
- days -= absFloor(yearsToDays(years));
2803
-
2804
- // 30 days to a month
2805
- // TODO (iskren): Use anchor date (like 1st Jan) to compute this.
2806
- months += absFloor(days / 30);
2807
- days %= 30;
2893
+ // convert days to months
2894
+ monthsFromDays = absFloor(daysToMonths(days));
2895
+ months += monthsFromDays;
2896
+ days -= absCeil(monthsToDays(monthsFromDays));
2808
2897
 
2809
2898
  // 12 months -> 1 year
2810
- years += absFloor(months / 12);
2899
+ years = absFloor(months / 12);
2811
2900
  months %= 12;
2812
2901
 
2813
2902
  data.days = days;
@@ -2817,15 +2906,15 @@
2817
2906
  return this;
2818
2907
  }
2819
2908
 
2820
- function daysToYears (days) {
2909
+ function daysToMonths (days) {
2821
2910
  // 400 years have 146097 days (taking into account leap year rules)
2822
- return days * 400 / 146097;
2911
+ // 400 years have 12 months === 4800
2912
+ return days * 4800 / 146097;
2823
2913
  }
2824
2914
 
2825
- function yearsToDays (years) {
2826
- // years * 365 + absFloor(years / 4) -
2827
- // absFloor(years / 100) + absFloor(years / 400);
2828
- return years * 146097 / 400;
2915
+ function monthsToDays (months) {
2916
+ // the reverse of daysToMonths
2917
+ return months * 146097 / 4800;
2829
2918
  }
2830
2919
 
2831
2920
  function as (units) {
@@ -2837,19 +2926,19 @@
2837
2926
 
2838
2927
  if (units === 'month' || units === 'year') {
2839
2928
  days = this._days + milliseconds / 864e5;
2840
- months = this._months + daysToYears(days) * 12;
2929
+ months = this._months + daysToMonths(days);
2841
2930
  return units === 'month' ? months : months / 12;
2842
2931
  } else {
2843
2932
  // handle milliseconds separately because of floating point math errors (issue #1867)
2844
- days = this._days + Math.round(yearsToDays(this._months / 12));
2933
+ days = this._days + Math.round(monthsToDays(this._months));
2845
2934
  switch (units) {
2846
- case 'week' : return days / 7 + milliseconds / 6048e5;
2847
- case 'day' : return days + milliseconds / 864e5;
2848
- case 'hour' : return days * 24 + milliseconds / 36e5;
2849
- case 'minute' : return days * 24 * 60 + milliseconds / 6e4;
2850
- case 'second' : return days * 24 * 60 * 60 + milliseconds / 1000;
2935
+ case 'week' : return days / 7 + milliseconds / 6048e5;
2936
+ case 'day' : return days + milliseconds / 864e5;
2937
+ case 'hour' : return days * 24 + milliseconds / 36e5;
2938
+ case 'minute' : return days * 1440 + milliseconds / 6e4;
2939
+ case 'second' : return days * 86400 + milliseconds / 1000;
2851
2940
  // Math.floor prevents floating point math errors here
2852
- case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + milliseconds;
2941
+ case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
2853
2942
  default: throw new Error('Unknown unit ' + units);
2854
2943
  }
2855
2944
  }
@@ -2891,7 +2980,7 @@
2891
2980
  };
2892
2981
  }
2893
2982
 
2894
- var duration_get__milliseconds = makeGetter('milliseconds');
2983
+ var milliseconds = makeGetter('milliseconds');
2895
2984
  var seconds = makeGetter('seconds');
2896
2985
  var minutes = makeGetter('minutes');
2897
2986
  var hours = makeGetter('hours');
@@ -2969,13 +3058,36 @@
2969
3058
  var iso_string__abs = Math.abs;
2970
3059
 
2971
3060
  function iso_string__toISOString() {
3061
+ // for ISO strings we do not use the normal bubbling rules:
3062
+ // * milliseconds bubble up until they become hours
3063
+ // * days do not bubble at all
3064
+ // * months bubble up until they become years
3065
+ // This is because there is no context-free conversion between hours and days
3066
+ // (think of clock changes)
3067
+ // and also not between days and months (28-31 days per month)
3068
+ var seconds = iso_string__abs(this._milliseconds) / 1000;
3069
+ var days = iso_string__abs(this._days);
3070
+ var months = iso_string__abs(this._months);
3071
+ var minutes, hours, years;
3072
+
3073
+ // 3600 seconds -> 60 minutes -> 1 hour
3074
+ minutes = absFloor(seconds / 60);
3075
+ hours = absFloor(minutes / 60);
3076
+ seconds %= 60;
3077
+ minutes %= 60;
3078
+
3079
+ // 12 months -> 1 year
3080
+ years = absFloor(months / 12);
3081
+ months %= 12;
3082
+
3083
+
2972
3084
  // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
2973
- var Y = iso_string__abs(this.years());
2974
- var M = iso_string__abs(this.months());
2975
- var D = iso_string__abs(this.days());
2976
- var h = iso_string__abs(this.hours());
2977
- var m = iso_string__abs(this.minutes());
2978
- var s = iso_string__abs(this.seconds() + this.milliseconds() / 1000);
3085
+ var Y = years;
3086
+ var M = months;
3087
+ var D = days;
3088
+ var h = hours;
3089
+ var m = minutes;
3090
+ var s = seconds;
2979
3091
  var total = this.asSeconds();
2980
3092
 
2981
3093
  if (!total) {
@@ -3012,7 +3124,7 @@
3012
3124
  duration_prototype__proto.valueOf = duration_as__valueOf;
3013
3125
  duration_prototype__proto._bubble = bubble;
3014
3126
  duration_prototype__proto.get = duration_get__get;
3015
- duration_prototype__proto.milliseconds = duration_get__milliseconds;
3127
+ duration_prototype__proto.milliseconds = milliseconds;
3016
3128
  duration_prototype__proto.seconds = seconds;
3017
3129
  duration_prototype__proto.minutes = minutes;
3018
3130
  duration_prototype__proto.hours = hours;
@@ -3050,7 +3162,7 @@
3050
3162
  // Side effect imports
3051
3163
 
3052
3164
 
3053
- utils_hooks__hooks.version = '2.10.2';
3165
+ utils_hooks__hooks.version = '2.10.6';
3054
3166
 
3055
3167
  setHookCallback(local__createLocal);
3056
3168