date_picker 0.0.6 → 0.0.7

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