ezii-os 1.1.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (621) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +11 -3
  3. data/Gemfile.lock +34 -17
  4. data/Procfile +1 -0
  5. data/app/assets/stylesheets/address_searches.scss +3 -0
  6. data/app/assets/stylesheets/application.css +6 -0
  7. data/app/assets/stylesheets/banal/documents.scss +3 -0
  8. data/app/assets/stylesheets/banal/employees.scss +3 -0
  9. data/app/assets/stylesheets/banal/links.scss +3 -0
  10. data/app/assets/stylesheets/banal/metadata.scss +3 -0
  11. data/app/assets/stylesheets/banal/related_objects.scss +3 -0
  12. data/app/assets/stylesheets/banal_complexes.scss +3 -0
  13. data/app/assets/stylesheets/comments.scss +3 -0
  14. data/app/assets/stylesheets/employees.scss +3 -0
  15. data/app/controllers/address_searches_controller.rb +76 -0
  16. data/app/controllers/banal/brainstorms_controller.rb +22 -2
  17. data/app/controllers/banal/documents_controller.rb +90 -0
  18. data/app/controllers/banal/employees_controller.rb +74 -0
  19. data/app/controllers/banal/links_controller.rb +82 -0
  20. data/app/controllers/banal/metadata_controller.rb +74 -0
  21. data/app/controllers/banal/projects_controller.rb +1 -1
  22. data/app/controllers/banal/related_objects_controller.rb +74 -0
  23. data/app/controllers/banal_complexes_controller.rb +74 -0
  24. data/app/controllers/comments_controller.rb +90 -0
  25. data/app/controllers/concerns/banal/related_object_creation_and_linking.rb +11 -0
  26. data/app/controllers/employees_controller.rb +74 -0
  27. data/app/helpers/address_searches_helper.rb +2 -0
  28. data/app/helpers/banal/documents_helper.rb +2 -0
  29. data/app/helpers/banal/employees_helper.rb +2 -0
  30. data/app/helpers/banal/links_helper.rb +2 -0
  31. data/app/helpers/banal/metadata_helper.rb +2 -0
  32. data/app/helpers/banal/related_objects_helper.rb +2 -0
  33. data/app/helpers/banal_complexes_helper.rb +2 -0
  34. data/app/helpers/comments_helper.rb +2 -0
  35. data/app/helpers/employees_helper.rb +2 -0
  36. data/app/javascript/packs/application.js +5 -0
  37. data/app/models/address_search.rb +2 -0
  38. data/app/models/banal/brainstorm.rb +3 -0
  39. data/app/models/banal/document.rb +4 -0
  40. data/app/models/banal/employee.rb +2 -0
  41. data/app/models/banal/link.rb +4 -0
  42. data/app/models/banal/metadatum.rb +2 -0
  43. data/app/models/banal/project.rb +5 -3
  44. data/app/models/banal/related_object.rb +5 -0
  45. data/app/models/banal_complex.rb +3 -0
  46. data/app/models/banal_dropbox_api.rb +8 -0
  47. data/app/models/comment.rb +4 -0
  48. data/app/models/employee.rb +2 -0
  49. data/app/models/ezii_os_path.rb +8 -0
  50. data/app/views/address_searches/_address_search.json.jbuilder +2 -0
  51. data/app/views/address_searches/_form.html.erb +27 -0
  52. data/app/views/address_searches/edit.html.erb +6 -0
  53. data/app/views/address_searches/index.html.erb +29 -0
  54. data/app/views/address_searches/index.json.jbuilder +1 -0
  55. data/app/views/address_searches/new.html.erb +5 -0
  56. data/app/views/address_searches/show.html.erb +18 -0
  57. data/app/views/address_searches/show.json.jbuilder +1 -0
  58. data/app/views/application/_navbar.html.erb +10 -0
  59. data/app/views/banal/brainstorms/_comment.html.erb +35 -0
  60. data/app/views/banal/brainstorms/_comments.html.erb +3 -0
  61. data/app/views/banal/brainstorms/_form.html.erb +0 -5
  62. data/app/views/banal/brainstorms/index.html.erb +29 -6
  63. data/app/views/banal/documents/_banal_document.json.jbuilder +2 -0
  64. data/app/views/banal/documents/_form.html.erb +61 -0
  65. data/app/views/banal/documents/edit.html.erb +6 -0
  66. data/app/views/banal/documents/index.html.erb +31 -0
  67. data/app/views/banal/documents/index.json.jbuilder +1 -0
  68. data/app/views/banal/documents/new.html.erb +32 -0
  69. data/app/views/banal/documents/show.html.erb +19 -0
  70. data/app/views/banal/documents/show.json.jbuilder +1 -0
  71. data/app/views/banal/employees/_banal_employee.json.jbuilder +2 -0
  72. data/app/views/banal/employees/_form.html.erb +77 -0
  73. data/app/views/banal/employees/edit.html.erb +6 -0
  74. data/app/views/banal/employees/index.html.erb +49 -0
  75. data/app/views/banal/employees/index.json.jbuilder +1 -0
  76. data/app/views/banal/employees/new.html.erb +5 -0
  77. data/app/views/banal/employees/show.html.erb +64 -0
  78. data/app/views/banal/employees/show.json.jbuilder +1 -0
  79. data/app/views/banal/links/_banal_link.json.jbuilder +2 -0
  80. data/app/views/banal/links/_form.html.erb +47 -0
  81. data/app/views/banal/links/edit.html.erb +6 -0
  82. data/app/views/banal/links/index.html.erb +31 -0
  83. data/app/views/banal/links/index.json.jbuilder +1 -0
  84. data/app/views/banal/links/new.html.erb +5 -0
  85. data/app/views/banal/links/show.html.erb +19 -0
  86. data/app/views/banal/links/show.json.jbuilder +1 -0
  87. data/app/views/banal/metadata/_banal_metadatum.json.jbuilder +2 -0
  88. data/app/views/banal/metadata/_form.html.erb +32 -0
  89. data/app/views/banal/metadata/edit.html.erb +6 -0
  90. data/app/views/banal/metadata/index.html.erb +31 -0
  91. data/app/views/banal/metadata/index.json.jbuilder +1 -0
  92. data/app/views/banal/metadata/new.html.erb +5 -0
  93. data/app/views/banal/metadata/show.html.erb +19 -0
  94. data/app/views/banal/metadata/show.json.jbuilder +1 -0
  95. data/app/views/banal/projects/_banal_project.json.jbuilder +1 -1
  96. data/app/views/banal/projects/_form.html.erb +40 -0
  97. data/app/views/banal/projects/index.html.erb +18 -4
  98. data/app/views/banal/projects/show.html.erb +65 -3
  99. data/app/views/banal/related_objects/_banal_related_object.json.jbuilder +2 -0
  100. data/app/views/banal/related_objects/_form.html.erb +27 -0
  101. data/app/views/banal/related_objects/_hidden_fields.html.erb +2 -0
  102. data/app/views/banal/related_objects/edit.html.erb +6 -0
  103. data/app/views/banal/related_objects/index.html.erb +29 -0
  104. data/app/views/banal/related_objects/index.json.jbuilder +1 -0
  105. data/app/views/banal/related_objects/new.html.erb +5 -0
  106. data/app/views/banal/related_objects/show.html.erb +14 -0
  107. data/app/views/banal/related_objects/show.json.jbuilder +1 -0
  108. data/app/views/banal_complexes/_banal_complex.json.jbuilder +2 -0
  109. data/app/views/banal_complexes/_form.html.erb +27 -0
  110. data/app/views/banal_complexes/edit.html.erb +6 -0
  111. data/app/views/banal_complexes/index.html.erb +42 -0
  112. data/app/views/banal_complexes/index.json.jbuilder +1 -0
  113. data/app/views/banal_complexes/new.html.erb +5 -0
  114. data/app/views/banal_complexes/show.html.erb +14 -0
  115. data/app/views/banal_complexes/show.json.jbuilder +1 -0
  116. data/app/views/comments/_comment.json.jbuilder +2 -0
  117. data/app/views/comments/_form.html.erb +32 -0
  118. data/app/views/comments/edit.html.erb +6 -0
  119. data/app/views/comments/index.html.erb +31 -0
  120. data/app/views/comments/index.json.jbuilder +1 -0
  121. data/app/views/comments/new.html.erb +5 -0
  122. data/app/views/comments/show.html.erb +19 -0
  123. data/app/views/comments/show.json.jbuilder +1 -0
  124. data/app/views/directories/show.html.erb +17 -3
  125. data/app/views/employees/_employee.json.jbuilder +2 -0
  126. data/app/views/employees/_form.html.erb +77 -0
  127. data/app/views/employees/edit.html.erb +6 -0
  128. data/app/views/employees/index.html.erb +49 -0
  129. data/app/views/employees/index.json.jbuilder +1 -0
  130. data/app/views/employees/new.html.erb +5 -0
  131. data/app/views/employees/show.html.erb +64 -0
  132. data/app/views/employees/show.json.jbuilder +1 -0
  133. data/app/views/layouts/application.html.erb +87 -5
  134. data/banal-data-science.bash +4 -0
  135. data/config/database.yml +3 -24
  136. data/config/routes.rb +24 -1
  137. data/db/development.sqlite3 +0 -0
  138. data/db/migrate/20190913073109_create_banal_projects.rb +17 -0
  139. data/db/migrate/20190913073110_create_banal_metadata.rb +11 -0
  140. data/db/migrate/20190913073111_create_banal_related_objects.rb +10 -0
  141. data/db/migrate/20190913143313_create_banal_documents.rb +11 -0
  142. data/db/migrate/20190913143326_create_banal_links.rb +11 -0
  143. data/db/migrate/20190915110713_add_dropbox_file_id_to_banal_documents.rb +5 -0
  144. data/db/migrate/20190915195312_add_deleted_at_to_banal_brainstorms.rb +6 -0
  145. data/db/migrate/20190915205450_create_employees.rb +20 -0
  146. data/db/migrate/20190915205629_create_banal_employees.rb +20 -0
  147. data/db/migrate/20190916094440_create_address_searches.rb +10 -0
  148. data/db/migrate/20190918222028_create_comments.rb +12 -0
  149. data/db/migrate/20190919164900_create_banal_complexes.rb +11 -0
  150. data/db/schema.rb +137 -7
  151. data/ezii-os-2.0.0.gem +0 -0
  152. data/ezii-os.gemspec +3 -4
  153. data/latest.dump +0 -0
  154. data/log/development.log +22199 -0
  155. data/node_modules/chart.js/LICENSE.md +9 -0
  156. data/node_modules/chart.js/README.md +32 -0
  157. data/node_modules/chart.js/bower.json +16 -0
  158. data/node_modules/chart.js/composer.json +26 -0
  159. data/node_modules/chart.js/dist/Chart.bundle.js +19288 -0
  160. data/node_modules/chart.js/dist/Chart.bundle.min.js +7 -0
  161. data/node_modules/chart.js/dist/Chart.css +47 -0
  162. data/node_modules/chart.js/dist/Chart.js +14680 -0
  163. data/node_modules/chart.js/dist/Chart.min.css +1 -0
  164. data/node_modules/chart.js/dist/Chart.min.js +7 -0
  165. data/node_modules/chart.js/package.json +69 -0
  166. data/node_modules/chartjs-color/CHANGELOG.md +35 -0
  167. data/node_modules/chartjs-color/LICENSE +21 -0
  168. data/node_modules/chartjs-color/README.md +126 -0
  169. data/node_modules/chartjs-color/index.js +485 -0
  170. data/node_modules/chartjs-color/node_modules/color-convert/CHANGELOG.md +4 -0
  171. data/node_modules/chartjs-color/node_modules/color-convert/LICENSE +21 -0
  172. data/node_modules/chartjs-color/node_modules/color-convert/README.md +57 -0
  173. data/node_modules/chartjs-color/node_modules/color-convert/component.json +9 -0
  174. data/node_modules/chartjs-color/node_modules/color-convert/conversions.js +698 -0
  175. data/node_modules/chartjs-color/node_modules/color-convert/index.js +92 -0
  176. data/node_modules/chartjs-color/node_modules/color-convert/package.json +20 -0
  177. data/node_modules/chartjs-color/node_modules/color-convert/test/basic.js +187 -0
  178. data/node_modules/chartjs-color/node_modules/color-convert/test/speed.js +23 -0
  179. data/node_modules/chartjs-color/package.json +49 -0
  180. data/node_modules/chartjs-color-string/CHANGELOG.md +11 -0
  181. data/node_modules/chartjs-color-string/LICENSE +21 -0
  182. data/node_modules/chartjs-color-string/README.md +46 -0
  183. data/node_modules/chartjs-color-string/color-string.js +237 -0
  184. data/node_modules/chartjs-color-string/package.json +24 -0
  185. data/node_modules/chartjs-color-string/test/basic.js +110 -0
  186. data/node_modules/chartkick/CHANGELOG.md +215 -0
  187. data/node_modules/chartkick/LICENSE.txt +22 -0
  188. data/node_modules/chartkick/README.md +537 -0
  189. data/node_modules/chartkick/dist/chartkick.esm.js +2286 -0
  190. data/node_modules/chartkick/dist/chartkick.js +2294 -0
  191. data/node_modules/chartkick/dist/chartkick.min.js +1 -0
  192. data/node_modules/chartkick/package.json +34 -0
  193. data/node_modules/{color-string → color-convert}/node_modules/color-name/LICENSE +0 -0
  194. data/node_modules/{color-string → color-convert}/node_modules/color-name/README.md +0 -0
  195. data/node_modules/{color-string → color-convert}/node_modules/color-name/index.js +0 -0
  196. data/node_modules/{color-string → color-convert}/node_modules/color-name/package.json +25 -28
  197. data/node_modules/{color-name → color-convert/node_modules/color-name}/test.js +0 -0
  198. data/node_modules/color-name/package.json +28 -25
  199. data/node_modules/moment/CHANGELOG.md +895 -0
  200. data/node_modules/moment/LICENSE +22 -0
  201. data/node_modules/moment/README.md +65 -0
  202. data/node_modules/moment/ender.js +1 -0
  203. data/node_modules/moment/locale/af.js +72 -0
  204. data/node_modules/moment/locale/ar-dz.js +58 -0
  205. data/node_modules/moment/locale/ar-kw.js +58 -0
  206. data/node_modules/moment/locale/ar-ly.js +121 -0
  207. data/node_modules/moment/locale/ar-ma.js +58 -0
  208. data/node_modules/moment/locale/ar-sa.js +103 -0
  209. data/node_modules/moment/locale/ar-tn.js +58 -0
  210. data/node_modules/moment/locale/ar.js +134 -0
  211. data/node_modules/moment/locale/az.js +104 -0
  212. data/node_modules/moment/locale/be.js +131 -0
  213. data/node_modules/moment/locale/bg.js +89 -0
  214. data/node_modules/moment/locale/bm.js +57 -0
  215. data/node_modules/moment/locale/bn.js +118 -0
  216. data/node_modules/moment/locale/bo.js +118 -0
  217. data/node_modules/moment/locale/br.js +107 -0
  218. data/node_modules/moment/locale/bs.js +150 -0
  219. data/node_modules/moment/locale/ca.js +87 -0
  220. data/node_modules/moment/locale/cs.js +171 -0
  221. data/node_modules/moment/locale/cv.js +62 -0
  222. data/node_modules/moment/locale/cy.js +79 -0
  223. data/node_modules/moment/locale/da.js +59 -0
  224. data/node_modules/moment/locale/de-at.js +75 -0
  225. data/node_modules/moment/locale/de-ch.js +75 -0
  226. data/node_modules/moment/locale/de.js +75 -0
  227. data/node_modules/moment/locale/dv.js +98 -0
  228. data/node_modules/moment/locale/el.js +99 -0
  229. data/node_modules/moment/locale/en-SG.js +66 -0
  230. data/node_modules/moment/locale/en-au.js +66 -0
  231. data/node_modules/moment/locale/en-ca.js +62 -0
  232. data/node_modules/moment/locale/en-gb.js +66 -0
  233. data/node_modules/moment/locale/en-ie.js +66 -0
  234. data/node_modules/moment/locale/en-il.js +61 -0
  235. data/node_modules/moment/locale/en-nz.js +66 -0
  236. data/node_modules/moment/locale/eo.js +70 -0
  237. data/node_modules/moment/locale/es-do.js +91 -0
  238. data/node_modules/moment/locale/es-us.js +91 -0
  239. data/node_modules/moment/locale/es.js +91 -0
  240. data/node_modules/moment/locale/et.js +79 -0
  241. data/node_modules/moment/locale/eu.js +65 -0
  242. data/node_modules/moment/locale/fa.js +105 -0
  243. data/node_modules/moment/locale/fi.js +108 -0
  244. data/node_modules/moment/locale/fo.js +59 -0
  245. data/node_modules/moment/locale/fr-ca.js +73 -0
  246. data/node_modules/moment/locale/fr-ch.js +77 -0
  247. data/node_modules/moment/locale/fr.js +82 -0
  248. data/node_modules/moment/locale/fy.js +74 -0
  249. data/node_modules/moment/locale/ga.js +76 -0
  250. data/node_modules/moment/locale/gd.js +75 -0
  251. data/node_modules/moment/locale/gl.js +76 -0
  252. data/node_modules/moment/locale/gom-latn.js +122 -0
  253. data/node_modules/moment/locale/gu.js +123 -0
  254. data/node_modules/moment/locale/he.js +96 -0
  255. data/node_modules/moment/locale/hi.js +123 -0
  256. data/node_modules/moment/locale/hr.js +153 -0
  257. data/node_modules/moment/locale/hu.js +109 -0
  258. data/node_modules/moment/locale/hy-am.js +94 -0
  259. data/node_modules/moment/locale/id.js +81 -0
  260. data/node_modules/moment/locale/is.js +131 -0
  261. data/node_modules/moment/locale/it-ch.js +68 -0
  262. data/node_modules/moment/locale/it.js +68 -0
  263. data/node_modules/moment/locale/ja.js +91 -0
  264. data/node_modules/moment/locale/jv.js +81 -0
  265. data/node_modules/moment/locale/ka.js +88 -0
  266. data/node_modules/moment/locale/kk.js +86 -0
  267. data/node_modules/moment/locale/km.js +109 -0
  268. data/node_modules/moment/locale/kn.js +125 -0
  269. data/node_modules/moment/locale/ko.js +80 -0
  270. data/node_modules/moment/locale/ku.js +118 -0
  271. data/node_modules/moment/locale/ky.js +86 -0
  272. data/node_modules/moment/locale/lb.js +135 -0
  273. data/node_modules/moment/locale/lo.js +69 -0
  274. data/node_modules/moment/locale/lt.js +117 -0
  275. data/node_modules/moment/locale/lv.js +96 -0
  276. data/node_modules/moment/locale/me.js +111 -0
  277. data/node_modules/moment/locale/mi.js +63 -0
  278. data/node_modules/moment/locale/mk.js +89 -0
  279. data/node_modules/moment/locale/ml.js +80 -0
  280. data/node_modules/moment/locale/mn.js +103 -0
  281. data/node_modules/moment/locale/mr.js +159 -0
  282. data/node_modules/moment/locale/ms-my.js +81 -0
  283. data/node_modules/moment/locale/ms.js +81 -0
  284. data/node_modules/moment/locale/mt.js +59 -0
  285. data/node_modules/moment/locale/my.js +92 -0
  286. data/node_modules/moment/locale/nb.js +61 -0
  287. data/node_modules/moment/locale/ne.js +122 -0
  288. data/node_modules/moment/locale/nl-be.js +86 -0
  289. data/node_modules/moment/locale/nl.js +86 -0
  290. data/node_modules/moment/locale/nn.js +59 -0
  291. data/node_modules/moment/locale/pa-in.js +123 -0
  292. data/node_modules/moment/locale/pl.js +125 -0
  293. data/node_modules/moment/locale/pt-br.js +60 -0
  294. data/node_modules/moment/locale/pt.js +64 -0
  295. data/node_modules/moment/locale/ro.js +74 -0
  296. data/node_modules/moment/locale/ru.js +181 -0
  297. data/node_modules/moment/locale/sd.js +97 -0
  298. data/node_modules/moment/locale/se.js +59 -0
  299. data/node_modules/moment/locale/si.js +70 -0
  300. data/node_modules/moment/locale/sk.js +155 -0
  301. data/node_modules/moment/locale/sl.js +172 -0
  302. data/node_modules/moment/locale/sq.js +67 -0
  303. data/node_modules/moment/locale/sr-cyrl.js +110 -0
  304. data/node_modules/moment/locale/sr.js +110 -0
  305. data/node_modules/moment/locale/ss.js +87 -0
  306. data/node_modules/moment/locale/sv.js +68 -0
  307. data/node_modules/moment/locale/sw.js +58 -0
  308. data/node_modules/moment/locale/ta.js +128 -0
  309. data/node_modules/moment/locale/te.js +88 -0
  310. data/node_modules/moment/locale/tet.js +66 -0
  311. data/node_modules/moment/locale/tg.js +115 -0
  312. data/node_modules/moment/locale/th.js +66 -0
  313. data/node_modules/moment/locale/tl-ph.js +61 -0
  314. data/node_modules/moment/locale/tlh.js +121 -0
  315. data/node_modules/moment/locale/tr.js +93 -0
  316. data/node_modules/moment/locale/tzl.js +90 -0
  317. data/node_modules/moment/locale/tzm-latn.js +57 -0
  318. data/node_modules/moment/locale/tzm.js +57 -0
  319. data/node_modules/moment/locale/ug-cn.js +118 -0
  320. data/node_modules/moment/locale/uk.js +153 -0
  321. data/node_modules/moment/locale/ur.js +97 -0
  322. data/node_modules/moment/locale/uz-latn.js +57 -0
  323. data/node_modules/moment/locale/uz.js +57 -0
  324. data/node_modules/moment/locale/vi.js +78 -0
  325. data/node_modules/moment/locale/x-pseudo.js +67 -0
  326. data/node_modules/moment/locale/yo.js +59 -0
  327. data/node_modules/moment/locale/zh-cn.js +109 -0
  328. data/node_modules/moment/locale/zh-hk.js +102 -0
  329. data/node_modules/moment/locale/zh-tw.js +102 -0
  330. data/node_modules/moment/min/locales.js +10178 -0
  331. data/node_modules/moment/min/locales.min.js +1 -0
  332. data/node_modules/moment/min/moment-with-locales.js +14765 -0
  333. data/node_modules/moment/min/moment-with-locales.min.js +1 -0
  334. data/node_modules/moment/min/moment.min.js +1 -0
  335. data/node_modules/moment/moment.d.ts +736 -0
  336. data/node_modules/moment/moment.js +4602 -0
  337. data/node_modules/moment/package.js +11 -0
  338. data/node_modules/moment/package.json +99 -0
  339. data/node_modules/moment/src/lib/create/check-overflow.js +34 -0
  340. data/node_modules/moment/src/lib/create/date-from-array.js +35 -0
  341. data/node_modules/moment/src/lib/create/from-anything.js +110 -0
  342. data/node_modules/moment/src/lib/create/from-array.js +147 -0
  343. data/node_modules/moment/src/lib/create/from-object.js +16 -0
  344. data/node_modules/moment/src/lib/create/from-string-and-array.js +50 -0
  345. data/node_modules/moment/src/lib/create/from-string-and-format.js +113 -0
  346. data/node_modules/moment/src/lib/create/from-string.js +230 -0
  347. data/node_modules/moment/src/lib/create/local.js +5 -0
  348. data/node_modules/moment/src/lib/create/parsing-flags.js +26 -0
  349. data/node_modules/moment/src/lib/create/utc.js +5 -0
  350. data/node_modules/moment/src/lib/create/valid.js +50 -0
  351. data/node_modules/moment/src/lib/duration/abs.js +18 -0
  352. data/node_modules/moment/src/lib/duration/add-subtract.js +21 -0
  353. data/node_modules/moment/src/lib/duration/as.js +66 -0
  354. data/node_modules/moment/src/lib/duration/bubble.js +61 -0
  355. data/node_modules/moment/src/lib/duration/clone.js +6 -0
  356. data/node_modules/moment/src/lib/duration/constructor.js +44 -0
  357. data/node_modules/moment/src/lib/duration/create.js +122 -0
  358. data/node_modules/moment/src/lib/duration/duration.js +16 -0
  359. data/node_modules/moment/src/lib/duration/get.js +25 -0
  360. data/node_modules/moment/src/lib/duration/humanize.js +85 -0
  361. data/node_modules/moment/src/lib/duration/iso-string.js +64 -0
  362. data/node_modules/moment/src/lib/duration/prototype.js +53 -0
  363. data/node_modules/moment/src/lib/duration/valid.js +36 -0
  364. data/node_modules/moment/src/lib/format/format.js +92 -0
  365. data/node_modules/moment/src/lib/locale/base-config.js +44 -0
  366. data/node_modules/moment/src/lib/locale/calendar.js +15 -0
  367. data/node_modules/moment/src/lib/locale/constructor.js +5 -0
  368. data/node_modules/moment/src/lib/locale/en.js +15 -0
  369. data/node_modules/moment/src/lib/locale/formats.js +23 -0
  370. data/node_modules/moment/src/lib/locale/invalid.js +5 -0
  371. data/node_modules/moment/src/lib/locale/lists.js +93 -0
  372. data/node_modules/moment/src/lib/locale/locale.js +39 -0
  373. data/node_modules/moment/src/lib/locale/locales.js +197 -0
  374. data/node_modules/moment/src/lib/locale/ordinal.js +7 -0
  375. data/node_modules/moment/src/lib/locale/pre-post-format.js +3 -0
  376. data/node_modules/moment/src/lib/locale/prototype.js +69 -0
  377. data/node_modules/moment/src/lib/locale/relative.js +30 -0
  378. data/node_modules/moment/src/lib/locale/set.js +49 -0
  379. data/node_modules/moment/src/lib/moment/add-subtract.js +55 -0
  380. data/node_modules/moment/src/lib/moment/calendar.js +26 -0
  381. data/node_modules/moment/src/lib/moment/clone.js +5 -0
  382. data/node_modules/moment/src/lib/moment/compare.js +63 -0
  383. data/node_modules/moment/src/lib/moment/constructor.js +77 -0
  384. data/node_modules/moment/src/lib/moment/creation-data.js +9 -0
  385. data/node_modules/moment/src/lib/moment/diff.js +58 -0
  386. data/node_modules/moment/src/lib/moment/format.js +62 -0
  387. data/node_modules/moment/src/lib/moment/from.js +17 -0
  388. data/node_modules/moment/src/lib/moment/get-set.js +61 -0
  389. data/node_modules/moment/src/lib/moment/locale.js +34 -0
  390. data/node_modules/moment/src/lib/moment/min-max.js +63 -0
  391. data/node_modules/moment/src/lib/moment/moment.js +28 -0
  392. data/node_modules/moment/src/lib/moment/now.js +3 -0
  393. data/node_modules/moment/src/lib/moment/prototype.js +150 -0
  394. data/node_modules/moment/src/lib/moment/start-end-of.js +128 -0
  395. data/node_modules/moment/src/lib/moment/to-type.js +34 -0
  396. data/node_modules/moment/src/lib/moment/to.js +17 -0
  397. data/node_modules/moment/src/lib/moment/valid.js +15 -0
  398. data/node_modules/moment/src/lib/parse/regex.js +54 -0
  399. data/node_modules/moment/src/lib/parse/token.js +33 -0
  400. data/node_modules/moment/src/lib/units/aliases.js +30 -0
  401. data/node_modules/moment/src/lib/units/constants.js +9 -0
  402. data/node_modules/moment/src/lib/units/day-of-month.js +39 -0
  403. data/node_modules/moment/src/lib/units/day-of-week.js +367 -0
  404. data/node_modules/moment/src/lib/units/day-of-year.js +36 -0
  405. data/node_modules/moment/src/lib/units/hour.js +144 -0
  406. data/node_modules/moment/src/lib/units/millisecond.js +69 -0
  407. data/node_modules/moment/src/lib/units/minute.js +29 -0
  408. data/node_modules/moment/src/lib/units/month.js +290 -0
  409. data/node_modules/moment/src/lib/units/offset.js +235 -0
  410. data/node_modules/moment/src/lib/units/priorities.js +16 -0
  411. data/node_modules/moment/src/lib/units/quarter.js +32 -0
  412. data/node_modules/moment/src/lib/units/second.js +29 -0
  413. data/node_modules/moment/src/lib/units/timestamp.js +20 -0
  414. data/node_modules/moment/src/lib/units/timezone.js +16 -0
  415. data/node_modules/moment/src/lib/units/units.js +20 -0
  416. data/node_modules/moment/src/lib/units/week-calendar-utils.js +65 -0
  417. data/node_modules/moment/src/lib/units/week-year.js +107 -0
  418. data/node_modules/moment/src/lib/units/week.js +67 -0
  419. data/node_modules/moment/src/lib/units/year.js +75 -0
  420. data/node_modules/moment/src/lib/utils/abs-ceil.js +7 -0
  421. data/node_modules/moment/src/lib/utils/abs-floor.js +8 -0
  422. data/node_modules/moment/src/lib/utils/abs-round.js +7 -0
  423. data/node_modules/moment/src/lib/utils/compare-arrays.js +16 -0
  424. data/node_modules/moment/src/lib/utils/defaults.js +10 -0
  425. data/node_modules/moment/src/lib/utils/deprecate.js +55 -0
  426. data/node_modules/moment/src/lib/utils/extend.js +19 -0
  427. data/node_modules/moment/src/lib/utils/has-own-prop.js +3 -0
  428. data/node_modules/moment/src/lib/utils/hooks.js +13 -0
  429. data/node_modules/moment/src/lib/utils/index-of.js +18 -0
  430. data/node_modules/moment/src/lib/utils/is-array.js +3 -0
  431. data/node_modules/moment/src/lib/utils/is-date.js +3 -0
  432. data/node_modules/moment/src/lib/utils/is-function.js +3 -0
  433. data/node_modules/moment/src/lib/utils/is-number.js +3 -0
  434. data/node_modules/moment/src/lib/utils/is-object-empty.js +13 -0
  435. data/node_modules/moment/src/lib/utils/is-object.js +5 -0
  436. data/node_modules/moment/src/lib/utils/is-undefined.js +3 -0
  437. data/node_modules/moment/src/lib/utils/keys.js +19 -0
  438. data/node_modules/moment/src/lib/utils/map.js +7 -0
  439. data/node_modules/moment/src/lib/utils/mod.js +3 -0
  440. data/node_modules/moment/src/lib/utils/some.js +19 -0
  441. data/node_modules/moment/src/lib/utils/to-int.js +12 -0
  442. data/node_modules/moment/src/lib/utils/zero-fill.js +7 -0
  443. data/node_modules/moment/src/locale/af.js +64 -0
  444. data/node_modules/moment/src/locale/ar-dz.js +51 -0
  445. data/node_modules/moment/src/locale/ar-kw.js +50 -0
  446. data/node_modules/moment/src/locale/ar-ly.js +113 -0
  447. data/node_modules/moment/src/locale/ar-ma.js +52 -0
  448. data/node_modules/moment/src/locale/ar-sa.js +96 -0
  449. data/node_modules/moment/src/locale/ar-tn.js +51 -0
  450. data/node_modules/moment/src/locale/ar.js +128 -0
  451. data/node_modules/moment/src/locale/az.js +97 -0
  452. data/node_modules/moment/src/locale/be.js +126 -0
  453. data/node_modules/moment/src/locale/bg.js +82 -0
  454. data/node_modules/moment/src/locale/bm.js +50 -0
  455. data/node_modules/moment/src/locale/bn.js +110 -0
  456. data/node_modules/moment/src/locale/bo.js +111 -0
  457. data/node_modules/moment/src/locale/br.js +100 -0
  458. data/node_modules/moment/src/locale/bs.js +143 -0
  459. data/node_modules/moment/src/locale/ca.js +80 -0
  460. data/node_modules/moment/src/locale/cs.js +164 -0
  461. data/node_modules/moment/src/locale/cv.js +54 -0
  462. data/node_modules/moment/src/locale/cy.js +73 -0
  463. data/node_modules/moment/src/locale/da.js +51 -0
  464. data/node_modules/moment/src/locale/de-at.js +70 -0
  465. data/node_modules/moment/src/locale/de-ch.js +69 -0
  466. data/node_modules/moment/src/locale/de.js +69 -0
  467. data/node_modules/moment/src/locale/dv.js +90 -0
  468. data/node_modules/moment/src/locale/el.js +89 -0
  469. data/node_modules/moment/src/locale/en-SG.js +59 -0
  470. data/node_modules/moment/src/locale/en-au.js +58 -0
  471. data/node_modules/moment/src/locale/en-ca.js +54 -0
  472. data/node_modules/moment/src/locale/en-gb.js +59 -0
  473. data/node_modules/moment/src/locale/en-ie.js +59 -0
  474. data/node_modules/moment/src/locale/en-il.js +54 -0
  475. data/node_modules/moment/src/locale/en-nz.js +58 -0
  476. data/node_modules/moment/src/locale/eo.js +65 -0
  477. data/node_modules/moment/src/locale/es-do.js +83 -0
  478. data/node_modules/moment/src/locale/es-us.js +84 -0
  479. data/node_modules/moment/src/locale/es.js +83 -0
  480. data/node_modules/moment/src/locale/et.js +73 -0
  481. data/node_modules/moment/src/locale/eu.js +58 -0
  482. data/node_modules/moment/src/locale/fa.js +98 -0
  483. data/node_modules/moment/src/locale/fi.js +101 -0
  484. data/node_modules/moment/src/locale/fo.js +53 -0
  485. data/node_modules/moment/src/locale/fr-ca.js +66 -0
  486. data/node_modules/moment/src/locale/fr-ch.js +70 -0
  487. data/node_modules/moment/src/locale/fr.js +75 -0
  488. data/node_modules/moment/src/locale/fy.js +67 -0
  489. data/node_modules/moment/src/locale/ga.js +68 -0
  490. data/node_modules/moment/src/locale/gd.js +68 -0
  491. data/node_modules/moment/src/locale/gl.js +69 -0
  492. data/node_modules/moment/src/locale/gom-latn.js +114 -0
  493. data/node_modules/moment/src/locale/gu.js +115 -0
  494. data/node_modules/moment/src/locale/he.js +91 -0
  495. data/node_modules/moment/src/locale/hi.js +116 -0
  496. data/node_modules/moment/src/locale/hr.js +145 -0
  497. data/node_modules/moment/src/locale/hu.js +103 -0
  498. data/node_modules/moment/src/locale/hy-am.js +87 -0
  499. data/node_modules/moment/src/locale/id.js +74 -0
  500. data/node_modules/moment/src/locale/is.js +124 -0
  501. data/node_modules/moment/src/locale/it-ch.js +61 -0
  502. data/node_modules/moment/src/locale/it.js +62 -0
  503. data/node_modules/moment/src/locale/ja.js +84 -0
  504. data/node_modules/moment/src/locale/jv.js +74 -0
  505. data/node_modules/moment/src/locale/ka.js +81 -0
  506. data/node_modules/moment/src/locale/kk.js +78 -0
  507. data/node_modules/moment/src/locale/km.js +101 -0
  508. data/node_modules/moment/src/locale/kn.js +117 -0
  509. data/node_modules/moment/src/locale/ko.js +74 -0
  510. data/node_modules/moment/src/locale/ku.js +110 -0
  511. data/node_modules/moment/src/locale/ky.js +79 -0
  512. data/node_modules/moment/src/locale/lb.js +129 -0
  513. data/node_modules/moment/src/locale/lo.js +62 -0
  514. data/node_modules/moment/src/locale/lt.js +110 -0
  515. data/node_modules/moment/src/locale/lv.js +90 -0
  516. data/node_modules/moment/src/locale/me.js +103 -0
  517. data/node_modules/moment/src/locale/mi.js +55 -0
  518. data/node_modules/moment/src/locale/mk.js +82 -0
  519. data/node_modules/moment/src/locale/ml.js +73 -0
  520. data/node_modules/moment/src/locale/mn.js +96 -0
  521. data/node_modules/moment/src/locale/mr.js +153 -0
  522. data/node_modules/moment/src/locale/ms-my.js +75 -0
  523. data/node_modules/moment/src/locale/ms.js +74 -0
  524. data/node_modules/moment/src/locale/mt.js +51 -0
  525. data/node_modules/moment/src/locale/my.js +87 -0
  526. data/node_modules/moment/src/locale/nb.js +55 -0
  527. data/node_modules/moment/src/locale/ne.js +115 -0
  528. data/node_modules/moment/src/locale/nl-be.js +80 -0
  529. data/node_modules/moment/src/locale/nl.js +80 -0
  530. data/node_modules/moment/src/locale/nn.js +52 -0
  531. data/node_modules/moment/src/locale/pa-in.js +116 -0
  532. data/node_modules/moment/src/locale/pl.js +117 -0
  533. data/node_modules/moment/src/locale/pt-br.js +53 -0
  534. data/node_modules/moment/src/locale/pt.js +57 -0
  535. data/node_modules/moment/src/locale/ro.js +68 -0
  536. data/node_modules/moment/src/locale/ru.js +175 -0
  537. data/node_modules/moment/src/locale/sd.js +89 -0
  538. data/node_modules/moment/src/locale/se.js +52 -0
  539. data/node_modules/moment/src/locale/si.js +62 -0
  540. data/node_modules/moment/src/locale/sk.js +149 -0
  541. data/node_modules/moment/src/locale/sl.js +164 -0
  542. data/node_modules/moment/src/locale/sq.js +62 -0
  543. data/node_modules/moment/src/locale/sr-cyrl.js +102 -0
  544. data/node_modules/moment/src/locale/sr.js +102 -0
  545. data/node_modules/moment/src/locale/ss.js +81 -0
  546. data/node_modules/moment/src/locale/sv.js +61 -0
  547. data/node_modules/moment/src/locale/sw.js +51 -0
  548. data/node_modules/moment/src/locale/ta.js +121 -0
  549. data/node_modules/moment/src/locale/te.js +80 -0
  550. data/node_modules/moment/src/locale/tet.js +60 -0
  551. data/node_modules/moment/src/locale/tg.js +107 -0
  552. data/node_modules/moment/src/locale/th.js +58 -0
  553. data/node_modules/moment/src/locale/tl-ph.js +54 -0
  554. data/node_modules/moment/src/locale/tlh.js +113 -0
  555. data/node_modules/moment/src/locale/tr.js +90 -0
  556. data/node_modules/moment/src/locale/tzl.js +84 -0
  557. data/node_modules/moment/src/locale/tzm-latn.js +50 -0
  558. data/node_modules/moment/src/locale/tzm.js +50 -0
  559. data/node_modules/moment/src/locale/ug-cn.js +110 -0
  560. data/node_modules/moment/src/locale/uk.js +146 -0
  561. data/node_modules/moment/src/locale/ur.js +90 -0
  562. data/node_modules/moment/src/locale/uz-latn.js +50 -0
  563. data/node_modules/moment/src/locale/uz.js +50 -0
  564. data/node_modules/moment/src/locale/vi.js +71 -0
  565. data/node_modules/moment/src/locale/x-pseudo.js +59 -0
  566. data/node_modules/moment/src/locale/yo.js +51 -0
  567. data/node_modules/moment/src/locale/zh-cn.js +102 -0
  568. data/node_modules/moment/src/locale/zh-hk.js +96 -0
  569. data/node_modules/moment/src/locale/zh-tw.js +95 -0
  570. data/node_modules/moment/src/moment.js +95 -0
  571. data/package.json +2 -0
  572. data/public/packs/js/application-0619dab0850a6efc7438.js +38148 -0
  573. data/public/packs/js/application-0619dab0850a6efc7438.js.map +1 -0
  574. data/public/packs/js/application-20352c48a8043c0951ac.js +38148 -0
  575. data/public/packs/js/application-20352c48a8043c0951ac.js.map +1 -0
  576. data/public/packs/js/application-c5495aaaa9c6e6b908e8.js +38148 -0
  577. data/public/packs/js/application-c5495aaaa9c6e6b908e8.js.map +1 -0
  578. data/public/packs/manifest.json +4 -4
  579. data/random.rb +1 -0
  580. data/test/controllers/address_searches_controller_test.rb +48 -0
  581. data/test/controllers/banal/documents_controller_test.rb +48 -0
  582. data/test/controllers/banal/employees_controller_test.rb +48 -0
  583. data/test/controllers/banal/links_controller_test.rb +48 -0
  584. data/test/controllers/banal/metadata_controller_test.rb +48 -0
  585. data/test/controllers/banal/projects_controller_test.rb +2 -2
  586. data/test/controllers/banal/related_objects_controller_test.rb +48 -0
  587. data/test/controllers/banal_complexes_controller_test.rb +48 -0
  588. data/test/controllers/comments_controller_test.rb +48 -0
  589. data/test/controllers/employees_controller_test.rb +48 -0
  590. data/test/fixtures/address_searches.yml +9 -0
  591. data/test/fixtures/banal/documents.yml +11 -0
  592. data/test/fixtures/banal/employees.yml +29 -0
  593. data/test/fixtures/banal/links.yml +11 -0
  594. data/test/fixtures/banal/metadata.yml +11 -0
  595. data/test/fixtures/banal/projects.yml +16 -0
  596. data/test/fixtures/banal/related_objects.yml +9 -0
  597. data/test/fixtures/banal_complexes.yml +9 -0
  598. data/test/fixtures/comments.yml +11 -0
  599. data/test/fixtures/employees.yml +29 -0
  600. data/test/models/address_search_test.rb +7 -0
  601. data/test/models/banal/document_test.rb +7 -0
  602. data/test/models/banal/employee_test.rb +7 -0
  603. data/test/models/banal/link_test.rb +7 -0
  604. data/test/models/banal/metadatum_test.rb +7 -0
  605. data/test/models/banal/related_object_test.rb +7 -0
  606. data/test/models/banal_complex_test.rb +7 -0
  607. data/test/models/comment_test.rb +7 -0
  608. data/test/models/employee_test.rb +7 -0
  609. data/test/system/address_searches_test.rb +45 -0
  610. data/test/system/banal/documents_test.rb +47 -0
  611. data/test/system/banal/employees_test.rb +65 -0
  612. data/test/system/banal/links_test.rb +47 -0
  613. data/test/system/banal/metadata_test.rb +47 -0
  614. data/test/system/banal/projects_test.rb +16 -0
  615. data/test/system/banal/related_objects_test.rb +45 -0
  616. data/test/system/banal_complexes_test.rb +45 -0
  617. data/test/system/comments_test.rb +47 -0
  618. data/test/system/employees_test.rb +65 -0
  619. data/yarn.lock +38 -0
  620. metadata +587 -8
  621. data/db/migrate/20190912173649_create_banal_projects.rb +0 -9
@@ -0,0 +1,230 @@
1
+ import { configFromStringAndFormat } from './from-string-and-format';
2
+ import { createUTCDate } from './date-from-array';
3
+ import { configFromArray } from './from-array';
4
+ import { hooks } from '../utils/hooks';
5
+ import { deprecate } from '../utils/deprecate';
6
+ import getParsingFlags from './parsing-flags';
7
+ import {defaultLocaleMonthsShort} from '../units/month';
8
+ import {defaultLocaleWeekdaysShort} from '../units/day-of-week';
9
+
10
+ // iso 8601 regex
11
+ // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
12
+ var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
13
+ var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
14
+
15
+ var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
16
+
17
+ var isoDates = [
18
+ ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
19
+ ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
20
+ ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
21
+ ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
22
+ ['YYYY-DDD', /\d{4}-\d{3}/],
23
+ ['YYYY-MM', /\d{4}-\d\d/, false],
24
+ ['YYYYYYMMDD', /[+-]\d{10}/],
25
+ ['YYYYMMDD', /\d{8}/],
26
+ // YYYYMM is NOT allowed by the standard
27
+ ['GGGG[W]WWE', /\d{4}W\d{3}/],
28
+ ['GGGG[W]WW', /\d{4}W\d{2}/, false],
29
+ ['YYYYDDD', /\d{7}/]
30
+ ];
31
+
32
+ // iso time formats and regexes
33
+ var isoTimes = [
34
+ ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
35
+ ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
36
+ ['HH:mm:ss', /\d\d:\d\d:\d\d/],
37
+ ['HH:mm', /\d\d:\d\d/],
38
+ ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
39
+ ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
40
+ ['HHmmss', /\d\d\d\d\d\d/],
41
+ ['HHmm', /\d\d\d\d/],
42
+ ['HH', /\d\d/]
43
+ ];
44
+
45
+ var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
46
+
47
+ // date from iso format
48
+ export function configFromISO(config) {
49
+ var i, l,
50
+ string = config._i,
51
+ match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
52
+ allowTime, dateFormat, timeFormat, tzFormat;
53
+
54
+ if (match) {
55
+ getParsingFlags(config).iso = true;
56
+
57
+ for (i = 0, l = isoDates.length; i < l; i++) {
58
+ if (isoDates[i][1].exec(match[1])) {
59
+ dateFormat = isoDates[i][0];
60
+ allowTime = isoDates[i][2] !== false;
61
+ break;
62
+ }
63
+ }
64
+ if (dateFormat == null) {
65
+ config._isValid = false;
66
+ return;
67
+ }
68
+ if (match[3]) {
69
+ for (i = 0, l = isoTimes.length; i < l; i++) {
70
+ if (isoTimes[i][1].exec(match[3])) {
71
+ // match[2] should be 'T' or space
72
+ timeFormat = (match[2] || ' ') + isoTimes[i][0];
73
+ break;
74
+ }
75
+ }
76
+ if (timeFormat == null) {
77
+ config._isValid = false;
78
+ return;
79
+ }
80
+ }
81
+ if (!allowTime && timeFormat != null) {
82
+ config._isValid = false;
83
+ return;
84
+ }
85
+ if (match[4]) {
86
+ if (tzRegex.exec(match[4])) {
87
+ tzFormat = 'Z';
88
+ } else {
89
+ config._isValid = false;
90
+ return;
91
+ }
92
+ }
93
+ config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
94
+ configFromStringAndFormat(config);
95
+ } else {
96
+ config._isValid = false;
97
+ }
98
+ }
99
+
100
+ // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
101
+ var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;
102
+
103
+ function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
104
+ var result = [
105
+ untruncateYear(yearStr),
106
+ defaultLocaleMonthsShort.indexOf(monthStr),
107
+ parseInt(dayStr, 10),
108
+ parseInt(hourStr, 10),
109
+ parseInt(minuteStr, 10)
110
+ ];
111
+
112
+ if (secondStr) {
113
+ result.push(parseInt(secondStr, 10));
114
+ }
115
+
116
+ return result;
117
+ }
118
+
119
+ function untruncateYear(yearStr) {
120
+ var year = parseInt(yearStr, 10);
121
+ if (year <= 49) {
122
+ return 2000 + year;
123
+ } else if (year <= 999) {
124
+ return 1900 + year;
125
+ }
126
+ return year;
127
+ }
128
+
129
+ function preprocessRFC2822(s) {
130
+ // Remove comments and folding whitespace and replace multiple-spaces with a single space
131
+ return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
132
+ }
133
+
134
+ function checkWeekday(weekdayStr, parsedInput, config) {
135
+ if (weekdayStr) {
136
+ // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
137
+ var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
138
+ weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
139
+ if (weekdayProvided !== weekdayActual) {
140
+ getParsingFlags(config).weekdayMismatch = true;
141
+ config._isValid = false;
142
+ return false;
143
+ }
144
+ }
145
+ return true;
146
+ }
147
+
148
+ var obsOffsets = {
149
+ UT: 0,
150
+ GMT: 0,
151
+ EDT: -4 * 60,
152
+ EST: -5 * 60,
153
+ CDT: -5 * 60,
154
+ CST: -6 * 60,
155
+ MDT: -6 * 60,
156
+ MST: -7 * 60,
157
+ PDT: -7 * 60,
158
+ PST: -8 * 60
159
+ };
160
+
161
+ function calculateOffset(obsOffset, militaryOffset, numOffset) {
162
+ if (obsOffset) {
163
+ return obsOffsets[obsOffset];
164
+ } else if (militaryOffset) {
165
+ // the only allowed military tz is Z
166
+ return 0;
167
+ } else {
168
+ var hm = parseInt(numOffset, 10);
169
+ var m = hm % 100, h = (hm - m) / 100;
170
+ return h * 60 + m;
171
+ }
172
+ }
173
+
174
+ // date and time from ref 2822 format
175
+ export function configFromRFC2822(config) {
176
+ var match = rfc2822.exec(preprocessRFC2822(config._i));
177
+ if (match) {
178
+ var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
179
+ if (!checkWeekday(match[1], parsedArray, config)) {
180
+ return;
181
+ }
182
+
183
+ config._a = parsedArray;
184
+ config._tzm = calculateOffset(match[8], match[9], match[10]);
185
+
186
+ config._d = createUTCDate.apply(null, config._a);
187
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
188
+
189
+ getParsingFlags(config).rfc2822 = true;
190
+ } else {
191
+ config._isValid = false;
192
+ }
193
+ }
194
+
195
+ // date from iso format or fallback
196
+ export function configFromString(config) {
197
+ var matched = aspNetJsonRegex.exec(config._i);
198
+
199
+ if (matched !== null) {
200
+ config._d = new Date(+matched[1]);
201
+ return;
202
+ }
203
+
204
+ configFromISO(config);
205
+ if (config._isValid === false) {
206
+ delete config._isValid;
207
+ } else {
208
+ return;
209
+ }
210
+
211
+ configFromRFC2822(config);
212
+ if (config._isValid === false) {
213
+ delete config._isValid;
214
+ } else {
215
+ return;
216
+ }
217
+
218
+ // Final attempt, use Input Fallback
219
+ hooks.createFromInputFallback(config);
220
+ }
221
+
222
+ hooks.createFromInputFallback = deprecate(
223
+ 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
224
+ 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
225
+ 'discouraged and will be removed in an upcoming major release. Please refer to ' +
226
+ 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
227
+ function (config) {
228
+ config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
229
+ }
230
+ );
@@ -0,0 +1,5 @@
1
+ import { createLocalOrUTC } from './from-anything';
2
+
3
+ export function createLocal (input, format, locale, strict) {
4
+ return createLocalOrUTC(input, format, locale, strict, false);
5
+ }
@@ -0,0 +1,26 @@
1
+ function defaultParsingFlags() {
2
+ // We need to deep clone this object.
3
+ return {
4
+ empty : false,
5
+ unusedTokens : [],
6
+ unusedInput : [],
7
+ overflow : -2,
8
+ charsLeftOver : 0,
9
+ nullInput : false,
10
+ invalidMonth : null,
11
+ invalidFormat : false,
12
+ userInvalidated : false,
13
+ iso : false,
14
+ parsedDateParts : [],
15
+ meridiem : null,
16
+ rfc2822 : false,
17
+ weekdayMismatch : false
18
+ };
19
+ }
20
+
21
+ export default function getParsingFlags(m) {
22
+ if (m._pf == null) {
23
+ m._pf = defaultParsingFlags();
24
+ }
25
+ return m._pf;
26
+ }
@@ -0,0 +1,5 @@
1
+ import { createLocalOrUTC } from './from-anything';
2
+
3
+ export function createUTC (input, format, locale, strict) {
4
+ return createLocalOrUTC(input, format, locale, strict, true).utc();
5
+ }
@@ -0,0 +1,50 @@
1
+ import extend from '../utils/extend';
2
+ import { createUTC } from './utc';
3
+ import getParsingFlags from '../create/parsing-flags';
4
+ import some from '../utils/some';
5
+
6
+ export function isValid(m) {
7
+ if (m._isValid == null) {
8
+ var flags = getParsingFlags(m);
9
+ var parsedParts = some.call(flags.parsedDateParts, function (i) {
10
+ return i != null;
11
+ });
12
+ var isNowValid = !isNaN(m._d.getTime()) &&
13
+ flags.overflow < 0 &&
14
+ !flags.empty &&
15
+ !flags.invalidMonth &&
16
+ !flags.invalidWeekday &&
17
+ !flags.weekdayMismatch &&
18
+ !flags.nullInput &&
19
+ !flags.invalidFormat &&
20
+ !flags.userInvalidated &&
21
+ (!flags.meridiem || (flags.meridiem && parsedParts));
22
+
23
+ if (m._strict) {
24
+ isNowValid = isNowValid &&
25
+ flags.charsLeftOver === 0 &&
26
+ flags.unusedTokens.length === 0 &&
27
+ flags.bigHour === undefined;
28
+ }
29
+
30
+ if (Object.isFrozen == null || !Object.isFrozen(m)) {
31
+ m._isValid = isNowValid;
32
+ }
33
+ else {
34
+ return isNowValid;
35
+ }
36
+ }
37
+ return m._isValid;
38
+ }
39
+
40
+ export function createInvalid (flags) {
41
+ var m = createUTC(NaN);
42
+ if (flags != null) {
43
+ extend(getParsingFlags(m), flags);
44
+ }
45
+ else {
46
+ getParsingFlags(m).userInvalidated = true;
47
+ }
48
+
49
+ return m;
50
+ }
@@ -0,0 +1,18 @@
1
+ var mathAbs = Math.abs;
2
+
3
+ export function abs () {
4
+ var data = this._data;
5
+
6
+ this._milliseconds = mathAbs(this._milliseconds);
7
+ this._days = mathAbs(this._days);
8
+ this._months = mathAbs(this._months);
9
+
10
+ data.milliseconds = mathAbs(data.milliseconds);
11
+ data.seconds = mathAbs(data.seconds);
12
+ data.minutes = mathAbs(data.minutes);
13
+ data.hours = mathAbs(data.hours);
14
+ data.months = mathAbs(data.months);
15
+ data.years = mathAbs(data.years);
16
+
17
+ return this;
18
+ }
@@ -0,0 +1,21 @@
1
+ import { createDuration } from './create';
2
+
3
+ function addSubtract (duration, input, value, direction) {
4
+ var other = createDuration(input, value);
5
+
6
+ duration._milliseconds += direction * other._milliseconds;
7
+ duration._days += direction * other._days;
8
+ duration._months += direction * other._months;
9
+
10
+ return duration._bubble();
11
+ }
12
+
13
+ // supports only 2.0-style add(1, 's') or add(duration)
14
+ export function add (input, value) {
15
+ return addSubtract(this, input, value, 1);
16
+ }
17
+
18
+ // supports only 2.0-style subtract(1, 's') or subtract(duration)
19
+ export function subtract (input, value) {
20
+ return addSubtract(this, input, value, -1);
21
+ }
@@ -0,0 +1,66 @@
1
+ import { daysToMonths, monthsToDays } from './bubble';
2
+ import { normalizeUnits } from '../units/aliases';
3
+ import toInt from '../utils/to-int';
4
+
5
+ export function as (units) {
6
+ if (!this.isValid()) {
7
+ return NaN;
8
+ }
9
+ var days;
10
+ var months;
11
+ var milliseconds = this._milliseconds;
12
+
13
+ units = normalizeUnits(units);
14
+
15
+ if (units === 'month' || units === 'quarter' || units === 'year') {
16
+ days = this._days + milliseconds / 864e5;
17
+ months = this._months + daysToMonths(days);
18
+ switch (units) {
19
+ case 'month': return months;
20
+ case 'quarter': return months / 3;
21
+ case 'year': return months / 12;
22
+ }
23
+ } else {
24
+ // handle milliseconds separately because of floating point math errors (issue #1867)
25
+ days = this._days + Math.round(monthsToDays(this._months));
26
+ switch (units) {
27
+ case 'week' : return days / 7 + milliseconds / 6048e5;
28
+ case 'day' : return days + milliseconds / 864e5;
29
+ case 'hour' : return days * 24 + milliseconds / 36e5;
30
+ case 'minute' : return days * 1440 + milliseconds / 6e4;
31
+ case 'second' : return days * 86400 + milliseconds / 1000;
32
+ // Math.floor prevents floating point math errors here
33
+ case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
34
+ default: throw new Error('Unknown unit ' + units);
35
+ }
36
+ }
37
+ }
38
+
39
+ // TODO: Use this.as('ms')?
40
+ export function valueOf () {
41
+ if (!this.isValid()) {
42
+ return NaN;
43
+ }
44
+ return (
45
+ this._milliseconds +
46
+ this._days * 864e5 +
47
+ (this._months % 12) * 2592e6 +
48
+ toInt(this._months / 12) * 31536e6
49
+ );
50
+ }
51
+
52
+ function makeAs (alias) {
53
+ return function () {
54
+ return this.as(alias);
55
+ };
56
+ }
57
+
58
+ export var asMilliseconds = makeAs('ms');
59
+ export var asSeconds = makeAs('s');
60
+ export var asMinutes = makeAs('m');
61
+ export var asHours = makeAs('h');
62
+ export var asDays = makeAs('d');
63
+ export var asWeeks = makeAs('w');
64
+ export var asMonths = makeAs('M');
65
+ export var asQuarters = makeAs('Q');
66
+ export var asYears = makeAs('y');
@@ -0,0 +1,61 @@
1
+ import absFloor from '../utils/abs-floor';
2
+ import absCeil from '../utils/abs-ceil';
3
+ import { createUTCDate } from '../create/date-from-array';
4
+
5
+ export function bubble () {
6
+ var milliseconds = this._milliseconds;
7
+ var days = this._days;
8
+ var months = this._months;
9
+ var data = this._data;
10
+ var seconds, minutes, hours, years, monthsFromDays;
11
+
12
+ // if we have a mix of positive and negative values, bubble down first
13
+ // check: https://github.com/moment/moment/issues/2166
14
+ if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
15
+ (milliseconds <= 0 && days <= 0 && months <= 0))) {
16
+ milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
17
+ days = 0;
18
+ months = 0;
19
+ }
20
+
21
+ // The following code bubbles up values, see the tests for
22
+ // examples of what that means.
23
+ data.milliseconds = milliseconds % 1000;
24
+
25
+ seconds = absFloor(milliseconds / 1000);
26
+ data.seconds = seconds % 60;
27
+
28
+ minutes = absFloor(seconds / 60);
29
+ data.minutes = minutes % 60;
30
+
31
+ hours = absFloor(minutes / 60);
32
+ data.hours = hours % 24;
33
+
34
+ days += absFloor(hours / 24);
35
+
36
+ // convert days to months
37
+ monthsFromDays = absFloor(daysToMonths(days));
38
+ months += monthsFromDays;
39
+ days -= absCeil(monthsToDays(monthsFromDays));
40
+
41
+ // 12 months -> 1 year
42
+ years = absFloor(months / 12);
43
+ months %= 12;
44
+
45
+ data.days = days;
46
+ data.months = months;
47
+ data.years = years;
48
+
49
+ return this;
50
+ }
51
+
52
+ export function daysToMonths (days) {
53
+ // 400 years have 146097 days (taking into account leap year rules)
54
+ // 400 years have 12 months === 4800
55
+ return days * 4800 / 146097;
56
+ }
57
+
58
+ export function monthsToDays (months) {
59
+ // the reverse of daysToMonths
60
+ return months * 146097 / 4800;
61
+ }
@@ -0,0 +1,6 @@
1
+ import { createDuration } from './create';
2
+
3
+ export function clone () {
4
+ return createDuration(this);
5
+ }
6
+
@@ -0,0 +1,44 @@
1
+ import { normalizeObjectUnits } from '../units/aliases';
2
+ import { getLocale } from '../locale/locales';
3
+ import isDurationValid from './valid.js';
4
+
5
+ export function Duration (duration) {
6
+ var normalizedInput = normalizeObjectUnits(duration),
7
+ years = normalizedInput.year || 0,
8
+ quarters = normalizedInput.quarter || 0,
9
+ months = normalizedInput.month || 0,
10
+ weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
11
+ days = normalizedInput.day || 0,
12
+ hours = normalizedInput.hour || 0,
13
+ minutes = normalizedInput.minute || 0,
14
+ seconds = normalizedInput.second || 0,
15
+ milliseconds = normalizedInput.millisecond || 0;
16
+
17
+ this._isValid = isDurationValid(normalizedInput);
18
+
19
+ // representation for dateAddRemove
20
+ this._milliseconds = +milliseconds +
21
+ seconds * 1e3 + // 1000
22
+ minutes * 6e4 + // 1000 * 60
23
+ hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
24
+ // Because of dateAddRemove treats 24 hours as different from a
25
+ // day when working around DST, we need to store them separately
26
+ this._days = +days +
27
+ weeks * 7;
28
+ // It is impossible to translate months into days without knowing
29
+ // which months you are are talking about, so we have to store
30
+ // it separately.
31
+ this._months = +months +
32
+ quarters * 3 +
33
+ years * 12;
34
+
35
+ this._data = {};
36
+
37
+ this._locale = getLocale();
38
+
39
+ this._bubble();
40
+ }
41
+
42
+ export function isDuration (obj) {
43
+ return obj instanceof Duration;
44
+ }
@@ -0,0 +1,122 @@
1
+ import { Duration, isDuration } from './constructor';
2
+ import isNumber from '../utils/is-number';
3
+ import toInt from '../utils/to-int';
4
+ import absRound from '../utils/abs-round';
5
+ import hasOwnProp from '../utils/has-own-prop';
6
+ import { DATE, HOUR, MINUTE, SECOND, MILLISECOND } from '../units/constants';
7
+ import { cloneWithOffset } from '../units/offset';
8
+ import { createLocal } from '../create/local';
9
+ import { createInvalid as invalid } from './valid';
10
+
11
+ // ASP.NET json date format regex
12
+ var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;
13
+
14
+ // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
15
+ // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
16
+ // and further modified to allow for strings containing both week and day
17
+ var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
18
+
19
+ export function createDuration (input, key) {
20
+ var duration = input,
21
+ // matching against regexp is expensive, do it on demand
22
+ match = null,
23
+ sign,
24
+ ret,
25
+ diffRes;
26
+
27
+ if (isDuration(input)) {
28
+ duration = {
29
+ ms : input._milliseconds,
30
+ d : input._days,
31
+ M : input._months
32
+ };
33
+ } else if (isNumber(input)) {
34
+ duration = {};
35
+ if (key) {
36
+ duration[key] = input;
37
+ } else {
38
+ duration.milliseconds = input;
39
+ }
40
+ } else if (!!(match = aspNetRegex.exec(input))) {
41
+ sign = (match[1] === '-') ? -1 : 1;
42
+ duration = {
43
+ y : 0,
44
+ d : toInt(match[DATE]) * sign,
45
+ h : toInt(match[HOUR]) * sign,
46
+ m : toInt(match[MINUTE]) * sign,
47
+ s : toInt(match[SECOND]) * sign,
48
+ ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
49
+ };
50
+ } else if (!!(match = isoRegex.exec(input))) {
51
+ sign = (match[1] === '-') ? -1 : 1;
52
+ duration = {
53
+ y : parseIso(match[2], sign),
54
+ M : parseIso(match[3], sign),
55
+ w : parseIso(match[4], sign),
56
+ d : parseIso(match[5], sign),
57
+ h : parseIso(match[6], sign),
58
+ m : parseIso(match[7], sign),
59
+ s : parseIso(match[8], sign)
60
+ };
61
+ } else if (duration == null) {// checks for null or undefined
62
+ duration = {};
63
+ } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
64
+ diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
65
+
66
+ duration = {};
67
+ duration.ms = diffRes.milliseconds;
68
+ duration.M = diffRes.months;
69
+ }
70
+
71
+ ret = new Duration(duration);
72
+
73
+ if (isDuration(input) && hasOwnProp(input, '_locale')) {
74
+ ret._locale = input._locale;
75
+ }
76
+
77
+ return ret;
78
+ }
79
+
80
+ createDuration.fn = Duration.prototype;
81
+ createDuration.invalid = invalid;
82
+
83
+ function parseIso (inp, sign) {
84
+ // We'd normally use ~~inp for this, but unfortunately it also
85
+ // converts floats to ints.
86
+ // inp may be undefined, so careful calling replace on it.
87
+ var res = inp && parseFloat(inp.replace(',', '.'));
88
+ // apply sign while we're at it
89
+ return (isNaN(res) ? 0 : res) * sign;
90
+ }
91
+
92
+ function positiveMomentsDifference(base, other) {
93
+ var res = {};
94
+
95
+ res.months = other.month() - base.month() +
96
+ (other.year() - base.year()) * 12;
97
+ if (base.clone().add(res.months, 'M').isAfter(other)) {
98
+ --res.months;
99
+ }
100
+
101
+ res.milliseconds = +other - +(base.clone().add(res.months, 'M'));
102
+
103
+ return res;
104
+ }
105
+
106
+ function momentsDifference(base, other) {
107
+ var res;
108
+ if (!(base.isValid() && other.isValid())) {
109
+ return {milliseconds: 0, months: 0};
110
+ }
111
+
112
+ other = cloneWithOffset(other, base);
113
+ if (base.isBefore(other)) {
114
+ res = positiveMomentsDifference(base, other);
115
+ } else {
116
+ res = positiveMomentsDifference(other, base);
117
+ res.milliseconds = -res.milliseconds;
118
+ res.months = -res.months;
119
+ }
120
+
121
+ return res;
122
+ }
@@ -0,0 +1,16 @@
1
+ // Side effect imports
2
+ import './prototype';
3
+
4
+ import { createDuration } from './create';
5
+ import { isDuration } from './constructor';
6
+ import {
7
+ getSetRelativeTimeRounding,
8
+ getSetRelativeTimeThreshold
9
+ } from './humanize';
10
+
11
+ export {
12
+ createDuration,
13
+ isDuration,
14
+ getSetRelativeTimeRounding,
15
+ getSetRelativeTimeThreshold
16
+ };