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,698 @@
1
+ /* MIT license */
2
+
3
+ module.exports = {
4
+ rgb2hsl: rgb2hsl,
5
+ rgb2hsv: rgb2hsv,
6
+ rgb2hwb: rgb2hwb,
7
+ rgb2cmyk: rgb2cmyk,
8
+ rgb2keyword: rgb2keyword,
9
+ rgb2xyz: rgb2xyz,
10
+ rgb2lab: rgb2lab,
11
+ rgb2lch: rgb2lch,
12
+
13
+ hsl2rgb: hsl2rgb,
14
+ hsl2hsv: hsl2hsv,
15
+ hsl2hwb: hsl2hwb,
16
+ hsl2cmyk: hsl2cmyk,
17
+ hsl2keyword: hsl2keyword,
18
+
19
+ hsv2rgb: hsv2rgb,
20
+ hsv2hsl: hsv2hsl,
21
+ hsv2hwb: hsv2hwb,
22
+ hsv2cmyk: hsv2cmyk,
23
+ hsv2keyword: hsv2keyword,
24
+
25
+ hwb2rgb: hwb2rgb,
26
+ hwb2hsl: hwb2hsl,
27
+ hwb2hsv: hwb2hsv,
28
+ hwb2cmyk: hwb2cmyk,
29
+ hwb2keyword: hwb2keyword,
30
+
31
+ cmyk2rgb: cmyk2rgb,
32
+ cmyk2hsl: cmyk2hsl,
33
+ cmyk2hsv: cmyk2hsv,
34
+ cmyk2hwb: cmyk2hwb,
35
+ cmyk2keyword: cmyk2keyword,
36
+
37
+ keyword2rgb: keyword2rgb,
38
+ keyword2hsl: keyword2hsl,
39
+ keyword2hsv: keyword2hsv,
40
+ keyword2hwb: keyword2hwb,
41
+ keyword2cmyk: keyword2cmyk,
42
+ keyword2lab: keyword2lab,
43
+ keyword2xyz: keyword2xyz,
44
+
45
+ xyz2rgb: xyz2rgb,
46
+ xyz2lab: xyz2lab,
47
+ xyz2lch: xyz2lch,
48
+
49
+ lab2xyz: lab2xyz,
50
+ lab2rgb: lab2rgb,
51
+ lab2lch: lab2lch,
52
+
53
+ lch2lab: lch2lab,
54
+ lch2xyz: lch2xyz,
55
+ lch2rgb: lch2rgb
56
+ }
57
+
58
+
59
+ function rgb2hsl(rgb) {
60
+ var r = rgb[0]/255,
61
+ g = rgb[1]/255,
62
+ b = rgb[2]/255,
63
+ min = Math.min(r, g, b),
64
+ max = Math.max(r, g, b),
65
+ delta = max - min,
66
+ h, s, l;
67
+
68
+ if (max == min)
69
+ h = 0;
70
+ else if (r == max)
71
+ h = (g - b) / delta;
72
+ else if (g == max)
73
+ h = 2 + (b - r) / delta;
74
+ else if (b == max)
75
+ h = 4 + (r - g)/ delta;
76
+
77
+ h = Math.min(h * 60, 360);
78
+
79
+ if (h < 0)
80
+ h += 360;
81
+
82
+ l = (min + max) / 2;
83
+
84
+ if (max == min)
85
+ s = 0;
86
+ else if (l <= 0.5)
87
+ s = delta / (max + min);
88
+ else
89
+ s = delta / (2 - max - min);
90
+
91
+ return [h, s * 100, l * 100];
92
+ }
93
+
94
+ function rgb2hsv(rgb) {
95
+ var r = rgb[0],
96
+ g = rgb[1],
97
+ b = rgb[2],
98
+ min = Math.min(r, g, b),
99
+ max = Math.max(r, g, b),
100
+ delta = max - min,
101
+ h, s, v;
102
+
103
+ if (max == 0)
104
+ s = 0;
105
+ else
106
+ s = (delta/max * 1000)/10;
107
+
108
+ if (max == min)
109
+ h = 0;
110
+ else if (r == max)
111
+ h = (g - b) / delta;
112
+ else if (g == max)
113
+ h = 2 + (b - r) / delta;
114
+ else if (b == max)
115
+ h = 4 + (r - g) / delta;
116
+
117
+ h = Math.min(h * 60, 360);
118
+
119
+ if (h < 0)
120
+ h += 360;
121
+
122
+ v = ((max / 255) * 1000) / 10;
123
+
124
+ return [h, s, v];
125
+ }
126
+
127
+ function rgb2hwb(rgb) {
128
+ var r = rgb[0],
129
+ g = rgb[1],
130
+ b = rgb[2],
131
+ h = rgb2hsl(rgb)[0],
132
+ w = 1/255 * Math.min(r, Math.min(g, b)),
133
+ b = 1 - 1/255 * Math.max(r, Math.max(g, b));
134
+
135
+ return [h, w * 100, b * 100];
136
+ }
137
+
138
+ function rgb2cmyk(rgb) {
139
+ var r = rgb[0] / 255,
140
+ g = rgb[1] / 255,
141
+ b = rgb[2] / 255,
142
+ c, m, y, k;
143
+
144
+ k = Math.min(1 - r, 1 - g, 1 - b);
145
+ c = (1 - r - k) / (1 - k) || 0;
146
+ m = (1 - g - k) / (1 - k) || 0;
147
+ y = (1 - b - k) / (1 - k) || 0;
148
+ return [c * 100, m * 100, y * 100, k * 100];
149
+ }
150
+
151
+ function rgb2keyword(rgb) {
152
+ return reverseKeywords[JSON.stringify(rgb)];
153
+ }
154
+
155
+ function rgb2xyz(rgb) {
156
+ var r = rgb[0] / 255,
157
+ g = rgb[1] / 255,
158
+ b = rgb[2] / 255;
159
+
160
+ // assume sRGB
161
+ r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
162
+ g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
163
+ b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
164
+
165
+ var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
166
+ var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
167
+ var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
168
+
169
+ return [x * 100, y *100, z * 100];
170
+ }
171
+
172
+ function rgb2lab(rgb) {
173
+ var xyz = rgb2xyz(rgb),
174
+ x = xyz[0],
175
+ y = xyz[1],
176
+ z = xyz[2],
177
+ l, a, b;
178
+
179
+ x /= 95.047;
180
+ y /= 100;
181
+ z /= 108.883;
182
+
183
+ x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);
184
+ y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);
185
+ z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);
186
+
187
+ l = (116 * y) - 16;
188
+ a = 500 * (x - y);
189
+ b = 200 * (y - z);
190
+
191
+ return [l, a, b];
192
+ }
193
+
194
+ function rgb2lch(args) {
195
+ return lab2lch(rgb2lab(args));
196
+ }
197
+
198
+ function hsl2rgb(hsl) {
199
+ var h = hsl[0] / 360,
200
+ s = hsl[1] / 100,
201
+ l = hsl[2] / 100,
202
+ t1, t2, t3, rgb, val;
203
+
204
+ if (s == 0) {
205
+ val = l * 255;
206
+ return [val, val, val];
207
+ }
208
+
209
+ if (l < 0.5)
210
+ t2 = l * (1 + s);
211
+ else
212
+ t2 = l + s - l * s;
213
+ t1 = 2 * l - t2;
214
+
215
+ rgb = [0, 0, 0];
216
+ for (var i = 0; i < 3; i++) {
217
+ t3 = h + 1 / 3 * - (i - 1);
218
+ t3 < 0 && t3++;
219
+ t3 > 1 && t3--;
220
+
221
+ if (6 * t3 < 1)
222
+ val = t1 + (t2 - t1) * 6 * t3;
223
+ else if (2 * t3 < 1)
224
+ val = t2;
225
+ else if (3 * t3 < 2)
226
+ val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
227
+ else
228
+ val = t1;
229
+
230
+ rgb[i] = val * 255;
231
+ }
232
+
233
+ return rgb;
234
+ }
235
+
236
+ function hsl2hsv(hsl) {
237
+ var h = hsl[0],
238
+ s = hsl[1] / 100,
239
+ l = hsl[2] / 100,
240
+ sv, v;
241
+
242
+ if(l === 0) {
243
+ // no need to do calc on black
244
+ // also avoids divide by 0 error
245
+ return [0, 0, 0];
246
+ }
247
+
248
+ l *= 2;
249
+ s *= (l <= 1) ? l : 2 - l;
250
+ v = (l + s) / 2;
251
+ sv = (2 * s) / (l + s);
252
+ return [h, sv * 100, v * 100];
253
+ }
254
+
255
+ function hsl2hwb(args) {
256
+ return rgb2hwb(hsl2rgb(args));
257
+ }
258
+
259
+ function hsl2cmyk(args) {
260
+ return rgb2cmyk(hsl2rgb(args));
261
+ }
262
+
263
+ function hsl2keyword(args) {
264
+ return rgb2keyword(hsl2rgb(args));
265
+ }
266
+
267
+
268
+ function hsv2rgb(hsv) {
269
+ var h = hsv[0] / 60,
270
+ s = hsv[1] / 100,
271
+ v = hsv[2] / 100,
272
+ hi = Math.floor(h) % 6;
273
+
274
+ var f = h - Math.floor(h),
275
+ p = 255 * v * (1 - s),
276
+ q = 255 * v * (1 - (s * f)),
277
+ t = 255 * v * (1 - (s * (1 - f))),
278
+ v = 255 * v;
279
+
280
+ switch(hi) {
281
+ case 0:
282
+ return [v, t, p];
283
+ case 1:
284
+ return [q, v, p];
285
+ case 2:
286
+ return [p, v, t];
287
+ case 3:
288
+ return [p, q, v];
289
+ case 4:
290
+ return [t, p, v];
291
+ case 5:
292
+ return [v, p, q];
293
+ }
294
+ }
295
+
296
+ function hsv2hsl(hsv) {
297
+ var h = hsv[0],
298
+ s = hsv[1] / 100,
299
+ v = hsv[2] / 100,
300
+ sl, l;
301
+
302
+ l = (2 - s) * v;
303
+ sl = s * v;
304
+ sl /= (l <= 1) ? l : 2 - l;
305
+ sl = sl || 0;
306
+ l /= 2;
307
+ return [h, sl * 100, l * 100];
308
+ }
309
+
310
+ function hsv2hwb(args) {
311
+ return rgb2hwb(hsv2rgb(args))
312
+ }
313
+
314
+ function hsv2cmyk(args) {
315
+ return rgb2cmyk(hsv2rgb(args));
316
+ }
317
+
318
+ function hsv2keyword(args) {
319
+ return rgb2keyword(hsv2rgb(args));
320
+ }
321
+
322
+ // http://dev.w3.org/csswg/css-color/#hwb-to-rgb
323
+ function hwb2rgb(hwb) {
324
+ var h = hwb[0] / 360,
325
+ wh = hwb[1] / 100,
326
+ bl = hwb[2] / 100,
327
+ ratio = wh + bl,
328
+ i, v, f, n;
329
+
330
+ // wh + bl cant be > 1
331
+ if (ratio > 1) {
332
+ wh /= ratio;
333
+ bl /= ratio;
334
+ }
335
+
336
+ i = Math.floor(6 * h);
337
+ v = 1 - bl;
338
+ f = 6 * h - i;
339
+ if ((i & 0x01) != 0) {
340
+ f = 1 - f;
341
+ }
342
+ n = wh + f * (v - wh); // linear interpolation
343
+
344
+ switch (i) {
345
+ default:
346
+ case 6:
347
+ case 0: r = v; g = n; b = wh; break;
348
+ case 1: r = n; g = v; b = wh; break;
349
+ case 2: r = wh; g = v; b = n; break;
350
+ case 3: r = wh; g = n; b = v; break;
351
+ case 4: r = n; g = wh; b = v; break;
352
+ case 5: r = v; g = wh; b = n; break;
353
+ }
354
+
355
+ return [r * 255, g * 255, b * 255];
356
+ }
357
+
358
+ function hwb2hsl(args) {
359
+ return rgb2hsl(hwb2rgb(args));
360
+ }
361
+
362
+ function hwb2hsv(args) {
363
+ return rgb2hsv(hwb2rgb(args));
364
+ }
365
+
366
+ function hwb2cmyk(args) {
367
+ return rgb2cmyk(hwb2rgb(args));
368
+ }
369
+
370
+ function hwb2keyword(args) {
371
+ return rgb2keyword(hwb2rgb(args));
372
+ }
373
+
374
+ function cmyk2rgb(cmyk) {
375
+ var c = cmyk[0] / 100,
376
+ m = cmyk[1] / 100,
377
+ y = cmyk[2] / 100,
378
+ k = cmyk[3] / 100,
379
+ r, g, b;
380
+
381
+ r = 1 - Math.min(1, c * (1 - k) + k);
382
+ g = 1 - Math.min(1, m * (1 - k) + k);
383
+ b = 1 - Math.min(1, y * (1 - k) + k);
384
+ return [r * 255, g * 255, b * 255];
385
+ }
386
+
387
+ function cmyk2hsl(args) {
388
+ return rgb2hsl(cmyk2rgb(args));
389
+ }
390
+
391
+ function cmyk2hsv(args) {
392
+ return rgb2hsv(cmyk2rgb(args));
393
+ }
394
+
395
+ function cmyk2hwb(args) {
396
+ return rgb2hwb(cmyk2rgb(args));
397
+ }
398
+
399
+ function cmyk2keyword(args) {
400
+ return rgb2keyword(cmyk2rgb(args));
401
+ }
402
+
403
+
404
+ function xyz2rgb(xyz) {
405
+ var x = xyz[0] / 100,
406
+ y = xyz[1] / 100,
407
+ z = xyz[2] / 100,
408
+ r, g, b;
409
+
410
+ r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
411
+ g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
412
+ b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
413
+
414
+ // assume sRGB
415
+ r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
416
+ : r = (r * 12.92);
417
+
418
+ g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
419
+ : g = (g * 12.92);
420
+
421
+ b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
422
+ : b = (b * 12.92);
423
+
424
+ r = Math.min(Math.max(0, r), 1);
425
+ g = Math.min(Math.max(0, g), 1);
426
+ b = Math.min(Math.max(0, b), 1);
427
+
428
+ return [r * 255, g * 255, b * 255];
429
+ }
430
+
431
+ function xyz2lab(xyz) {
432
+ var x = xyz[0],
433
+ y = xyz[1],
434
+ z = xyz[2],
435
+ l, a, b;
436
+
437
+ x /= 95.047;
438
+ y /= 100;
439
+ z /= 108.883;
440
+
441
+ x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);
442
+ y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);
443
+ z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);
444
+
445
+ l = (116 * y) - 16;
446
+ a = 500 * (x - y);
447
+ b = 200 * (y - z);
448
+
449
+ return [l, a, b];
450
+ }
451
+
452
+ function xyz2lch(args) {
453
+ return lab2lch(xyz2lab(args));
454
+ }
455
+
456
+ function lab2xyz(lab) {
457
+ var l = lab[0],
458
+ a = lab[1],
459
+ b = lab[2],
460
+ x, y, z, y2;
461
+
462
+ if (l <= 8) {
463
+ y = (l * 100) / 903.3;
464
+ y2 = (7.787 * (y / 100)) + (16 / 116);
465
+ } else {
466
+ y = 100 * Math.pow((l + 16) / 116, 3);
467
+ y2 = Math.pow(y / 100, 1/3);
468
+ }
469
+
470
+ x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);
471
+
472
+ z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);
473
+
474
+ return [x, y, z];
475
+ }
476
+
477
+ function lab2lch(lab) {
478
+ var l = lab[0],
479
+ a = lab[1],
480
+ b = lab[2],
481
+ hr, h, c;
482
+
483
+ hr = Math.atan2(b, a);
484
+ h = hr * 360 / 2 / Math.PI;
485
+ if (h < 0) {
486
+ h += 360;
487
+ }
488
+ c = Math.sqrt(a * a + b * b);
489
+ return [l, c, h];
490
+ }
491
+
492
+ function lab2rgb(args) {
493
+ return xyz2rgb(lab2xyz(args));
494
+ }
495
+
496
+ function lch2lab(lch) {
497
+ var l = lch[0],
498
+ c = lch[1],
499
+ h = lch[2],
500
+ a, b, hr;
501
+
502
+ hr = h / 360 * 2 * Math.PI;
503
+ a = c * Math.cos(hr);
504
+ b = c * Math.sin(hr);
505
+ return [l, a, b];
506
+ }
507
+
508
+ function lch2xyz(args) {
509
+ return lab2xyz(lch2lab(args));
510
+ }
511
+
512
+ function lch2rgb(args) {
513
+ return lab2rgb(lch2lab(args));
514
+ }
515
+
516
+ function keyword2rgb(keyword) {
517
+ return cssKeywords[keyword];
518
+ }
519
+
520
+ function keyword2hsl(args) {
521
+ return rgb2hsl(keyword2rgb(args));
522
+ }
523
+
524
+ function keyword2hsv(args) {
525
+ return rgb2hsv(keyword2rgb(args));
526
+ }
527
+
528
+ function keyword2hwb(args) {
529
+ return rgb2hwb(keyword2rgb(args));
530
+ }
531
+
532
+ function keyword2cmyk(args) {
533
+ return rgb2cmyk(keyword2rgb(args));
534
+ }
535
+
536
+ function keyword2lab(args) {
537
+ return rgb2lab(keyword2rgb(args));
538
+ }
539
+
540
+ function keyword2xyz(args) {
541
+ return rgb2xyz(keyword2rgb(args));
542
+ }
543
+
544
+ var cssKeywords = {
545
+ aliceblue: [240,248,255],
546
+ antiquewhite: [250,235,215],
547
+ aqua: [0,255,255],
548
+ aquamarine: [127,255,212],
549
+ azure: [240,255,255],
550
+ beige: [245,245,220],
551
+ bisque: [255,228,196],
552
+ black: [0,0,0],
553
+ blanchedalmond: [255,235,205],
554
+ blue: [0,0,255],
555
+ blueviolet: [138,43,226],
556
+ brown: [165,42,42],
557
+ burlywood: [222,184,135],
558
+ cadetblue: [95,158,160],
559
+ chartreuse: [127,255,0],
560
+ chocolate: [210,105,30],
561
+ coral: [255,127,80],
562
+ cornflowerblue: [100,149,237],
563
+ cornsilk: [255,248,220],
564
+ crimson: [220,20,60],
565
+ cyan: [0,255,255],
566
+ darkblue: [0,0,139],
567
+ darkcyan: [0,139,139],
568
+ darkgoldenrod: [184,134,11],
569
+ darkgray: [169,169,169],
570
+ darkgreen: [0,100,0],
571
+ darkgrey: [169,169,169],
572
+ darkkhaki: [189,183,107],
573
+ darkmagenta: [139,0,139],
574
+ darkolivegreen: [85,107,47],
575
+ darkorange: [255,140,0],
576
+ darkorchid: [153,50,204],
577
+ darkred: [139,0,0],
578
+ darksalmon: [233,150,122],
579
+ darkseagreen: [143,188,143],
580
+ darkslateblue: [72,61,139],
581
+ darkslategray: [47,79,79],
582
+ darkslategrey: [47,79,79],
583
+ darkturquoise: [0,206,209],
584
+ darkviolet: [148,0,211],
585
+ deeppink: [255,20,147],
586
+ deepskyblue: [0,191,255],
587
+ dimgray: [105,105,105],
588
+ dimgrey: [105,105,105],
589
+ dodgerblue: [30,144,255],
590
+ firebrick: [178,34,34],
591
+ floralwhite: [255,250,240],
592
+ forestgreen: [34,139,34],
593
+ fuchsia: [255,0,255],
594
+ gainsboro: [220,220,220],
595
+ ghostwhite: [248,248,255],
596
+ gold: [255,215,0],
597
+ goldenrod: [218,165,32],
598
+ gray: [128,128,128],
599
+ green: [0,128,0],
600
+ greenyellow: [173,255,47],
601
+ grey: [128,128,128],
602
+ honeydew: [240,255,240],
603
+ hotpink: [255,105,180],
604
+ indianred: [205,92,92],
605
+ indigo: [75,0,130],
606
+ ivory: [255,255,240],
607
+ khaki: [240,230,140],
608
+ lavender: [230,230,250],
609
+ lavenderblush: [255,240,245],
610
+ lawngreen: [124,252,0],
611
+ lemonchiffon: [255,250,205],
612
+ lightblue: [173,216,230],
613
+ lightcoral: [240,128,128],
614
+ lightcyan: [224,255,255],
615
+ lightgoldenrodyellow: [250,250,210],
616
+ lightgray: [211,211,211],
617
+ lightgreen: [144,238,144],
618
+ lightgrey: [211,211,211],
619
+ lightpink: [255,182,193],
620
+ lightsalmon: [255,160,122],
621
+ lightseagreen: [32,178,170],
622
+ lightskyblue: [135,206,250],
623
+ lightslategray: [119,136,153],
624
+ lightslategrey: [119,136,153],
625
+ lightsteelblue: [176,196,222],
626
+ lightyellow: [255,255,224],
627
+ lime: [0,255,0],
628
+ limegreen: [50,205,50],
629
+ linen: [250,240,230],
630
+ magenta: [255,0,255],
631
+ maroon: [128,0,0],
632
+ mediumaquamarine: [102,205,170],
633
+ mediumblue: [0,0,205],
634
+ mediumorchid: [186,85,211],
635
+ mediumpurple: [147,112,219],
636
+ mediumseagreen: [60,179,113],
637
+ mediumslateblue: [123,104,238],
638
+ mediumspringgreen: [0,250,154],
639
+ mediumturquoise: [72,209,204],
640
+ mediumvioletred: [199,21,133],
641
+ midnightblue: [25,25,112],
642
+ mintcream: [245,255,250],
643
+ mistyrose: [255,228,225],
644
+ moccasin: [255,228,181],
645
+ navajowhite: [255,222,173],
646
+ navy: [0,0,128],
647
+ oldlace: [253,245,230],
648
+ olive: [128,128,0],
649
+ olivedrab: [107,142,35],
650
+ orange: [255,165,0],
651
+ orangered: [255,69,0],
652
+ orchid: [218,112,214],
653
+ palegoldenrod: [238,232,170],
654
+ palegreen: [152,251,152],
655
+ paleturquoise: [175,238,238],
656
+ palevioletred: [219,112,147],
657
+ papayawhip: [255,239,213],
658
+ peachpuff: [255,218,185],
659
+ peru: [205,133,63],
660
+ pink: [255,192,203],
661
+ plum: [221,160,221],
662
+ powderblue: [176,224,230],
663
+ purple: [128,0,128],
664
+ rebeccapurple: [102, 51, 153],
665
+ red: [255,0,0],
666
+ rosybrown: [188,143,143],
667
+ royalblue: [65,105,225],
668
+ saddlebrown: [139,69,19],
669
+ salmon: [250,128,114],
670
+ sandybrown: [244,164,96],
671
+ seagreen: [46,139,87],
672
+ seashell: [255,245,238],
673
+ sienna: [160,82,45],
674
+ silver: [192,192,192],
675
+ skyblue: [135,206,235],
676
+ slateblue: [106,90,205],
677
+ slategray: [112,128,144],
678
+ slategrey: [112,128,144],
679
+ snow: [255,250,250],
680
+ springgreen: [0,255,127],
681
+ steelblue: [70,130,180],
682
+ tan: [210,180,140],
683
+ teal: [0,128,128],
684
+ thistle: [216,191,216],
685
+ tomato: [255,99,71],
686
+ turquoise: [64,224,208],
687
+ violet: [238,130,238],
688
+ wheat: [245,222,179],
689
+ white: [255,255,255],
690
+ whitesmoke: [245,245,245],
691
+ yellow: [255,255,0],
692
+ yellowgreen: [154,205,50]
693
+ };
694
+
695
+ var reverseKeywords = {};
696
+ for (var key in cssKeywords) {
697
+ reverseKeywords[JSON.stringify(cssKeywords[key])] = key;
698
+ }