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.
- checksums.yaml +4 -4
- data/Gemfile +11 -3
- data/Gemfile.lock +34 -17
- data/Procfile +1 -0
- data/app/assets/stylesheets/address_searches.scss +3 -0
- data/app/assets/stylesheets/application.css +6 -0
- data/app/assets/stylesheets/banal/documents.scss +3 -0
- data/app/assets/stylesheets/banal/employees.scss +3 -0
- data/app/assets/stylesheets/banal/links.scss +3 -0
- data/app/assets/stylesheets/banal/metadata.scss +3 -0
- data/app/assets/stylesheets/banal/related_objects.scss +3 -0
- data/app/assets/stylesheets/banal_complexes.scss +3 -0
- data/app/assets/stylesheets/comments.scss +3 -0
- data/app/assets/stylesheets/employees.scss +3 -0
- data/app/controllers/address_searches_controller.rb +76 -0
- data/app/controllers/banal/brainstorms_controller.rb +22 -2
- data/app/controllers/banal/documents_controller.rb +90 -0
- data/app/controllers/banal/employees_controller.rb +74 -0
- data/app/controllers/banal/links_controller.rb +82 -0
- data/app/controllers/banal/metadata_controller.rb +74 -0
- data/app/controllers/banal/projects_controller.rb +1 -1
- data/app/controllers/banal/related_objects_controller.rb +74 -0
- data/app/controllers/banal_complexes_controller.rb +74 -0
- data/app/controllers/comments_controller.rb +90 -0
- data/app/controllers/concerns/banal/related_object_creation_and_linking.rb +11 -0
- data/app/controllers/employees_controller.rb +74 -0
- data/app/helpers/address_searches_helper.rb +2 -0
- data/app/helpers/banal/documents_helper.rb +2 -0
- data/app/helpers/banal/employees_helper.rb +2 -0
- data/app/helpers/banal/links_helper.rb +2 -0
- data/app/helpers/banal/metadata_helper.rb +2 -0
- data/app/helpers/banal/related_objects_helper.rb +2 -0
- data/app/helpers/banal_complexes_helper.rb +2 -0
- data/app/helpers/comments_helper.rb +2 -0
- data/app/helpers/employees_helper.rb +2 -0
- data/app/javascript/packs/application.js +5 -0
- data/app/models/address_search.rb +2 -0
- data/app/models/banal/brainstorm.rb +3 -0
- data/app/models/banal/document.rb +4 -0
- data/app/models/banal/employee.rb +2 -0
- data/app/models/banal/link.rb +4 -0
- data/app/models/banal/metadatum.rb +2 -0
- data/app/models/banal/project.rb +5 -3
- data/app/models/banal/related_object.rb +5 -0
- data/app/models/banal_complex.rb +3 -0
- data/app/models/banal_dropbox_api.rb +8 -0
- data/app/models/comment.rb +4 -0
- data/app/models/employee.rb +2 -0
- data/app/models/ezii_os_path.rb +8 -0
- data/app/views/address_searches/_address_search.json.jbuilder +2 -0
- data/app/views/address_searches/_form.html.erb +27 -0
- data/app/views/address_searches/edit.html.erb +6 -0
- data/app/views/address_searches/index.html.erb +29 -0
- data/app/views/address_searches/index.json.jbuilder +1 -0
- data/app/views/address_searches/new.html.erb +5 -0
- data/app/views/address_searches/show.html.erb +18 -0
- data/app/views/address_searches/show.json.jbuilder +1 -0
- data/app/views/application/_navbar.html.erb +10 -0
- data/app/views/banal/brainstorms/_comment.html.erb +35 -0
- data/app/views/banal/brainstorms/_comments.html.erb +3 -0
- data/app/views/banal/brainstorms/_form.html.erb +0 -5
- data/app/views/banal/brainstorms/index.html.erb +29 -6
- data/app/views/banal/documents/_banal_document.json.jbuilder +2 -0
- data/app/views/banal/documents/_form.html.erb +61 -0
- data/app/views/banal/documents/edit.html.erb +6 -0
- data/app/views/banal/documents/index.html.erb +31 -0
- data/app/views/banal/documents/index.json.jbuilder +1 -0
- data/app/views/banal/documents/new.html.erb +32 -0
- data/app/views/banal/documents/show.html.erb +19 -0
- data/app/views/banal/documents/show.json.jbuilder +1 -0
- data/app/views/banal/employees/_banal_employee.json.jbuilder +2 -0
- data/app/views/banal/employees/_form.html.erb +77 -0
- data/app/views/banal/employees/edit.html.erb +6 -0
- data/app/views/banal/employees/index.html.erb +49 -0
- data/app/views/banal/employees/index.json.jbuilder +1 -0
- data/app/views/banal/employees/new.html.erb +5 -0
- data/app/views/banal/employees/show.html.erb +64 -0
- data/app/views/banal/employees/show.json.jbuilder +1 -0
- data/app/views/banal/links/_banal_link.json.jbuilder +2 -0
- data/app/views/banal/links/_form.html.erb +47 -0
- data/app/views/banal/links/edit.html.erb +6 -0
- data/app/views/banal/links/index.html.erb +31 -0
- data/app/views/banal/links/index.json.jbuilder +1 -0
- data/app/views/banal/links/new.html.erb +5 -0
- data/app/views/banal/links/show.html.erb +19 -0
- data/app/views/banal/links/show.json.jbuilder +1 -0
- data/app/views/banal/metadata/_banal_metadatum.json.jbuilder +2 -0
- data/app/views/banal/metadata/_form.html.erb +32 -0
- data/app/views/banal/metadata/edit.html.erb +6 -0
- data/app/views/banal/metadata/index.html.erb +31 -0
- data/app/views/banal/metadata/index.json.jbuilder +1 -0
- data/app/views/banal/metadata/new.html.erb +5 -0
- data/app/views/banal/metadata/show.html.erb +19 -0
- data/app/views/banal/metadata/show.json.jbuilder +1 -0
- data/app/views/banal/projects/_banal_project.json.jbuilder +1 -1
- data/app/views/banal/projects/_form.html.erb +40 -0
- data/app/views/banal/projects/index.html.erb +18 -4
- data/app/views/banal/projects/show.html.erb +65 -3
- data/app/views/banal/related_objects/_banal_related_object.json.jbuilder +2 -0
- data/app/views/banal/related_objects/_form.html.erb +27 -0
- data/app/views/banal/related_objects/_hidden_fields.html.erb +2 -0
- data/app/views/banal/related_objects/edit.html.erb +6 -0
- data/app/views/banal/related_objects/index.html.erb +29 -0
- data/app/views/banal/related_objects/index.json.jbuilder +1 -0
- data/app/views/banal/related_objects/new.html.erb +5 -0
- data/app/views/banal/related_objects/show.html.erb +14 -0
- data/app/views/banal/related_objects/show.json.jbuilder +1 -0
- data/app/views/banal_complexes/_banal_complex.json.jbuilder +2 -0
- data/app/views/banal_complexes/_form.html.erb +27 -0
- data/app/views/banal_complexes/edit.html.erb +6 -0
- data/app/views/banal_complexes/index.html.erb +42 -0
- data/app/views/banal_complexes/index.json.jbuilder +1 -0
- data/app/views/banal_complexes/new.html.erb +5 -0
- data/app/views/banal_complexes/show.html.erb +14 -0
- data/app/views/banal_complexes/show.json.jbuilder +1 -0
- data/app/views/comments/_comment.json.jbuilder +2 -0
- data/app/views/comments/_form.html.erb +32 -0
- data/app/views/comments/edit.html.erb +6 -0
- data/app/views/comments/index.html.erb +31 -0
- data/app/views/comments/index.json.jbuilder +1 -0
- data/app/views/comments/new.html.erb +5 -0
- data/app/views/comments/show.html.erb +19 -0
- data/app/views/comments/show.json.jbuilder +1 -0
- data/app/views/directories/show.html.erb +17 -3
- data/app/views/employees/_employee.json.jbuilder +2 -0
- data/app/views/employees/_form.html.erb +77 -0
- data/app/views/employees/edit.html.erb +6 -0
- data/app/views/employees/index.html.erb +49 -0
- data/app/views/employees/index.json.jbuilder +1 -0
- data/app/views/employees/new.html.erb +5 -0
- data/app/views/employees/show.html.erb +64 -0
- data/app/views/employees/show.json.jbuilder +1 -0
- data/app/views/layouts/application.html.erb +87 -5
- data/banal-data-science.bash +4 -0
- data/config/database.yml +3 -24
- data/config/routes.rb +24 -1
- data/db/development.sqlite3 +0 -0
- data/db/migrate/20190913073109_create_banal_projects.rb +17 -0
- data/db/migrate/20190913073110_create_banal_metadata.rb +11 -0
- data/db/migrate/20190913073111_create_banal_related_objects.rb +10 -0
- data/db/migrate/20190913143313_create_banal_documents.rb +11 -0
- data/db/migrate/20190913143326_create_banal_links.rb +11 -0
- data/db/migrate/20190915110713_add_dropbox_file_id_to_banal_documents.rb +5 -0
- data/db/migrate/20190915195312_add_deleted_at_to_banal_brainstorms.rb +6 -0
- data/db/migrate/20190915205450_create_employees.rb +20 -0
- data/db/migrate/20190915205629_create_banal_employees.rb +20 -0
- data/db/migrate/20190916094440_create_address_searches.rb +10 -0
- data/db/migrate/20190918222028_create_comments.rb +12 -0
- data/db/migrate/20190919164900_create_banal_complexes.rb +11 -0
- data/db/schema.rb +137 -7
- data/ezii-os-2.0.0.gem +0 -0
- data/ezii-os.gemspec +3 -4
- data/latest.dump +0 -0
- data/log/development.log +22199 -0
- data/node_modules/chart.js/LICENSE.md +9 -0
- data/node_modules/chart.js/README.md +32 -0
- data/node_modules/chart.js/bower.json +16 -0
- data/node_modules/chart.js/composer.json +26 -0
- data/node_modules/chart.js/dist/Chart.bundle.js +19288 -0
- data/node_modules/chart.js/dist/Chart.bundle.min.js +7 -0
- data/node_modules/chart.js/dist/Chart.css +47 -0
- data/node_modules/chart.js/dist/Chart.js +14680 -0
- data/node_modules/chart.js/dist/Chart.min.css +1 -0
- data/node_modules/chart.js/dist/Chart.min.js +7 -0
- data/node_modules/chart.js/package.json +69 -0
- data/node_modules/chartjs-color/CHANGELOG.md +35 -0
- data/node_modules/chartjs-color/LICENSE +21 -0
- data/node_modules/chartjs-color/README.md +126 -0
- data/node_modules/chartjs-color/index.js +485 -0
- data/node_modules/chartjs-color/node_modules/color-convert/CHANGELOG.md +4 -0
- data/node_modules/chartjs-color/node_modules/color-convert/LICENSE +21 -0
- data/node_modules/chartjs-color/node_modules/color-convert/README.md +57 -0
- data/node_modules/chartjs-color/node_modules/color-convert/component.json +9 -0
- data/node_modules/chartjs-color/node_modules/color-convert/conversions.js +698 -0
- data/node_modules/chartjs-color/node_modules/color-convert/index.js +92 -0
- data/node_modules/chartjs-color/node_modules/color-convert/package.json +20 -0
- data/node_modules/chartjs-color/node_modules/color-convert/test/basic.js +187 -0
- data/node_modules/chartjs-color/node_modules/color-convert/test/speed.js +23 -0
- data/node_modules/chartjs-color/package.json +49 -0
- data/node_modules/chartjs-color-string/CHANGELOG.md +11 -0
- data/node_modules/chartjs-color-string/LICENSE +21 -0
- data/node_modules/chartjs-color-string/README.md +46 -0
- data/node_modules/chartjs-color-string/color-string.js +237 -0
- data/node_modules/chartjs-color-string/package.json +24 -0
- data/node_modules/chartjs-color-string/test/basic.js +110 -0
- data/node_modules/chartkick/CHANGELOG.md +215 -0
- data/node_modules/chartkick/LICENSE.txt +22 -0
- data/node_modules/chartkick/README.md +537 -0
- data/node_modules/chartkick/dist/chartkick.esm.js +2286 -0
- data/node_modules/chartkick/dist/chartkick.js +2294 -0
- data/node_modules/chartkick/dist/chartkick.min.js +1 -0
- data/node_modules/chartkick/package.json +34 -0
- data/node_modules/{color-string → color-convert}/node_modules/color-name/LICENSE +0 -0
- data/node_modules/{color-string → color-convert}/node_modules/color-name/README.md +0 -0
- data/node_modules/{color-string → color-convert}/node_modules/color-name/index.js +0 -0
- data/node_modules/{color-string → color-convert}/node_modules/color-name/package.json +25 -28
- data/node_modules/{color-name → color-convert/node_modules/color-name}/test.js +0 -0
- data/node_modules/color-name/package.json +28 -25
- data/node_modules/moment/CHANGELOG.md +895 -0
- data/node_modules/moment/LICENSE +22 -0
- data/node_modules/moment/README.md +65 -0
- data/node_modules/moment/ender.js +1 -0
- data/node_modules/moment/locale/af.js +72 -0
- data/node_modules/moment/locale/ar-dz.js +58 -0
- data/node_modules/moment/locale/ar-kw.js +58 -0
- data/node_modules/moment/locale/ar-ly.js +121 -0
- data/node_modules/moment/locale/ar-ma.js +58 -0
- data/node_modules/moment/locale/ar-sa.js +103 -0
- data/node_modules/moment/locale/ar-tn.js +58 -0
- data/node_modules/moment/locale/ar.js +134 -0
- data/node_modules/moment/locale/az.js +104 -0
- data/node_modules/moment/locale/be.js +131 -0
- data/node_modules/moment/locale/bg.js +89 -0
- data/node_modules/moment/locale/bm.js +57 -0
- data/node_modules/moment/locale/bn.js +118 -0
- data/node_modules/moment/locale/bo.js +118 -0
- data/node_modules/moment/locale/br.js +107 -0
- data/node_modules/moment/locale/bs.js +150 -0
- data/node_modules/moment/locale/ca.js +87 -0
- data/node_modules/moment/locale/cs.js +171 -0
- data/node_modules/moment/locale/cv.js +62 -0
- data/node_modules/moment/locale/cy.js +79 -0
- data/node_modules/moment/locale/da.js +59 -0
- data/node_modules/moment/locale/de-at.js +75 -0
- data/node_modules/moment/locale/de-ch.js +75 -0
- data/node_modules/moment/locale/de.js +75 -0
- data/node_modules/moment/locale/dv.js +98 -0
- data/node_modules/moment/locale/el.js +99 -0
- data/node_modules/moment/locale/en-SG.js +66 -0
- data/node_modules/moment/locale/en-au.js +66 -0
- data/node_modules/moment/locale/en-ca.js +62 -0
- data/node_modules/moment/locale/en-gb.js +66 -0
- data/node_modules/moment/locale/en-ie.js +66 -0
- data/node_modules/moment/locale/en-il.js +61 -0
- data/node_modules/moment/locale/en-nz.js +66 -0
- data/node_modules/moment/locale/eo.js +70 -0
- data/node_modules/moment/locale/es-do.js +91 -0
- data/node_modules/moment/locale/es-us.js +91 -0
- data/node_modules/moment/locale/es.js +91 -0
- data/node_modules/moment/locale/et.js +79 -0
- data/node_modules/moment/locale/eu.js +65 -0
- data/node_modules/moment/locale/fa.js +105 -0
- data/node_modules/moment/locale/fi.js +108 -0
- data/node_modules/moment/locale/fo.js +59 -0
- data/node_modules/moment/locale/fr-ca.js +73 -0
- data/node_modules/moment/locale/fr-ch.js +77 -0
- data/node_modules/moment/locale/fr.js +82 -0
- data/node_modules/moment/locale/fy.js +74 -0
- data/node_modules/moment/locale/ga.js +76 -0
- data/node_modules/moment/locale/gd.js +75 -0
- data/node_modules/moment/locale/gl.js +76 -0
- data/node_modules/moment/locale/gom-latn.js +122 -0
- data/node_modules/moment/locale/gu.js +123 -0
- data/node_modules/moment/locale/he.js +96 -0
- data/node_modules/moment/locale/hi.js +123 -0
- data/node_modules/moment/locale/hr.js +153 -0
- data/node_modules/moment/locale/hu.js +109 -0
- data/node_modules/moment/locale/hy-am.js +94 -0
- data/node_modules/moment/locale/id.js +81 -0
- data/node_modules/moment/locale/is.js +131 -0
- data/node_modules/moment/locale/it-ch.js +68 -0
- data/node_modules/moment/locale/it.js +68 -0
- data/node_modules/moment/locale/ja.js +91 -0
- data/node_modules/moment/locale/jv.js +81 -0
- data/node_modules/moment/locale/ka.js +88 -0
- data/node_modules/moment/locale/kk.js +86 -0
- data/node_modules/moment/locale/km.js +109 -0
- data/node_modules/moment/locale/kn.js +125 -0
- data/node_modules/moment/locale/ko.js +80 -0
- data/node_modules/moment/locale/ku.js +118 -0
- data/node_modules/moment/locale/ky.js +86 -0
- data/node_modules/moment/locale/lb.js +135 -0
- data/node_modules/moment/locale/lo.js +69 -0
- data/node_modules/moment/locale/lt.js +117 -0
- data/node_modules/moment/locale/lv.js +96 -0
- data/node_modules/moment/locale/me.js +111 -0
- data/node_modules/moment/locale/mi.js +63 -0
- data/node_modules/moment/locale/mk.js +89 -0
- data/node_modules/moment/locale/ml.js +80 -0
- data/node_modules/moment/locale/mn.js +103 -0
- data/node_modules/moment/locale/mr.js +159 -0
- data/node_modules/moment/locale/ms-my.js +81 -0
- data/node_modules/moment/locale/ms.js +81 -0
- data/node_modules/moment/locale/mt.js +59 -0
- data/node_modules/moment/locale/my.js +92 -0
- data/node_modules/moment/locale/nb.js +61 -0
- data/node_modules/moment/locale/ne.js +122 -0
- data/node_modules/moment/locale/nl-be.js +86 -0
- data/node_modules/moment/locale/nl.js +86 -0
- data/node_modules/moment/locale/nn.js +59 -0
- data/node_modules/moment/locale/pa-in.js +123 -0
- data/node_modules/moment/locale/pl.js +125 -0
- data/node_modules/moment/locale/pt-br.js +60 -0
- data/node_modules/moment/locale/pt.js +64 -0
- data/node_modules/moment/locale/ro.js +74 -0
- data/node_modules/moment/locale/ru.js +181 -0
- data/node_modules/moment/locale/sd.js +97 -0
- data/node_modules/moment/locale/se.js +59 -0
- data/node_modules/moment/locale/si.js +70 -0
- data/node_modules/moment/locale/sk.js +155 -0
- data/node_modules/moment/locale/sl.js +172 -0
- data/node_modules/moment/locale/sq.js +67 -0
- data/node_modules/moment/locale/sr-cyrl.js +110 -0
- data/node_modules/moment/locale/sr.js +110 -0
- data/node_modules/moment/locale/ss.js +87 -0
- data/node_modules/moment/locale/sv.js +68 -0
- data/node_modules/moment/locale/sw.js +58 -0
- data/node_modules/moment/locale/ta.js +128 -0
- data/node_modules/moment/locale/te.js +88 -0
- data/node_modules/moment/locale/tet.js +66 -0
- data/node_modules/moment/locale/tg.js +115 -0
- data/node_modules/moment/locale/th.js +66 -0
- data/node_modules/moment/locale/tl-ph.js +61 -0
- data/node_modules/moment/locale/tlh.js +121 -0
- data/node_modules/moment/locale/tr.js +93 -0
- data/node_modules/moment/locale/tzl.js +90 -0
- data/node_modules/moment/locale/tzm-latn.js +57 -0
- data/node_modules/moment/locale/tzm.js +57 -0
- data/node_modules/moment/locale/ug-cn.js +118 -0
- data/node_modules/moment/locale/uk.js +153 -0
- data/node_modules/moment/locale/ur.js +97 -0
- data/node_modules/moment/locale/uz-latn.js +57 -0
- data/node_modules/moment/locale/uz.js +57 -0
- data/node_modules/moment/locale/vi.js +78 -0
- data/node_modules/moment/locale/x-pseudo.js +67 -0
- data/node_modules/moment/locale/yo.js +59 -0
- data/node_modules/moment/locale/zh-cn.js +109 -0
- data/node_modules/moment/locale/zh-hk.js +102 -0
- data/node_modules/moment/locale/zh-tw.js +102 -0
- data/node_modules/moment/min/locales.js +10178 -0
- data/node_modules/moment/min/locales.min.js +1 -0
- data/node_modules/moment/min/moment-with-locales.js +14765 -0
- data/node_modules/moment/min/moment-with-locales.min.js +1 -0
- data/node_modules/moment/min/moment.min.js +1 -0
- data/node_modules/moment/moment.d.ts +736 -0
- data/node_modules/moment/moment.js +4602 -0
- data/node_modules/moment/package.js +11 -0
- data/node_modules/moment/package.json +99 -0
- data/node_modules/moment/src/lib/create/check-overflow.js +34 -0
- data/node_modules/moment/src/lib/create/date-from-array.js +35 -0
- data/node_modules/moment/src/lib/create/from-anything.js +110 -0
- data/node_modules/moment/src/lib/create/from-array.js +147 -0
- data/node_modules/moment/src/lib/create/from-object.js +16 -0
- data/node_modules/moment/src/lib/create/from-string-and-array.js +50 -0
- data/node_modules/moment/src/lib/create/from-string-and-format.js +113 -0
- data/node_modules/moment/src/lib/create/from-string.js +230 -0
- data/node_modules/moment/src/lib/create/local.js +5 -0
- data/node_modules/moment/src/lib/create/parsing-flags.js +26 -0
- data/node_modules/moment/src/lib/create/utc.js +5 -0
- data/node_modules/moment/src/lib/create/valid.js +50 -0
- data/node_modules/moment/src/lib/duration/abs.js +18 -0
- data/node_modules/moment/src/lib/duration/add-subtract.js +21 -0
- data/node_modules/moment/src/lib/duration/as.js +66 -0
- data/node_modules/moment/src/lib/duration/bubble.js +61 -0
- data/node_modules/moment/src/lib/duration/clone.js +6 -0
- data/node_modules/moment/src/lib/duration/constructor.js +44 -0
- data/node_modules/moment/src/lib/duration/create.js +122 -0
- data/node_modules/moment/src/lib/duration/duration.js +16 -0
- data/node_modules/moment/src/lib/duration/get.js +25 -0
- data/node_modules/moment/src/lib/duration/humanize.js +85 -0
- data/node_modules/moment/src/lib/duration/iso-string.js +64 -0
- data/node_modules/moment/src/lib/duration/prototype.js +53 -0
- data/node_modules/moment/src/lib/duration/valid.js +36 -0
- data/node_modules/moment/src/lib/format/format.js +92 -0
- data/node_modules/moment/src/lib/locale/base-config.js +44 -0
- data/node_modules/moment/src/lib/locale/calendar.js +15 -0
- data/node_modules/moment/src/lib/locale/constructor.js +5 -0
- data/node_modules/moment/src/lib/locale/en.js +15 -0
- data/node_modules/moment/src/lib/locale/formats.js +23 -0
- data/node_modules/moment/src/lib/locale/invalid.js +5 -0
- data/node_modules/moment/src/lib/locale/lists.js +93 -0
- data/node_modules/moment/src/lib/locale/locale.js +39 -0
- data/node_modules/moment/src/lib/locale/locales.js +197 -0
- data/node_modules/moment/src/lib/locale/ordinal.js +7 -0
- data/node_modules/moment/src/lib/locale/pre-post-format.js +3 -0
- data/node_modules/moment/src/lib/locale/prototype.js +69 -0
- data/node_modules/moment/src/lib/locale/relative.js +30 -0
- data/node_modules/moment/src/lib/locale/set.js +49 -0
- data/node_modules/moment/src/lib/moment/add-subtract.js +55 -0
- data/node_modules/moment/src/lib/moment/calendar.js +26 -0
- data/node_modules/moment/src/lib/moment/clone.js +5 -0
- data/node_modules/moment/src/lib/moment/compare.js +63 -0
- data/node_modules/moment/src/lib/moment/constructor.js +77 -0
- data/node_modules/moment/src/lib/moment/creation-data.js +9 -0
- data/node_modules/moment/src/lib/moment/diff.js +58 -0
- data/node_modules/moment/src/lib/moment/format.js +62 -0
- data/node_modules/moment/src/lib/moment/from.js +17 -0
- data/node_modules/moment/src/lib/moment/get-set.js +61 -0
- data/node_modules/moment/src/lib/moment/locale.js +34 -0
- data/node_modules/moment/src/lib/moment/min-max.js +63 -0
- data/node_modules/moment/src/lib/moment/moment.js +28 -0
- data/node_modules/moment/src/lib/moment/now.js +3 -0
- data/node_modules/moment/src/lib/moment/prototype.js +150 -0
- data/node_modules/moment/src/lib/moment/start-end-of.js +128 -0
- data/node_modules/moment/src/lib/moment/to-type.js +34 -0
- data/node_modules/moment/src/lib/moment/to.js +17 -0
- data/node_modules/moment/src/lib/moment/valid.js +15 -0
- data/node_modules/moment/src/lib/parse/regex.js +54 -0
- data/node_modules/moment/src/lib/parse/token.js +33 -0
- data/node_modules/moment/src/lib/units/aliases.js +30 -0
- data/node_modules/moment/src/lib/units/constants.js +9 -0
- data/node_modules/moment/src/lib/units/day-of-month.js +39 -0
- data/node_modules/moment/src/lib/units/day-of-week.js +367 -0
- data/node_modules/moment/src/lib/units/day-of-year.js +36 -0
- data/node_modules/moment/src/lib/units/hour.js +144 -0
- data/node_modules/moment/src/lib/units/millisecond.js +69 -0
- data/node_modules/moment/src/lib/units/minute.js +29 -0
- data/node_modules/moment/src/lib/units/month.js +290 -0
- data/node_modules/moment/src/lib/units/offset.js +235 -0
- data/node_modules/moment/src/lib/units/priorities.js +16 -0
- data/node_modules/moment/src/lib/units/quarter.js +32 -0
- data/node_modules/moment/src/lib/units/second.js +29 -0
- data/node_modules/moment/src/lib/units/timestamp.js +20 -0
- data/node_modules/moment/src/lib/units/timezone.js +16 -0
- data/node_modules/moment/src/lib/units/units.js +20 -0
- data/node_modules/moment/src/lib/units/week-calendar-utils.js +65 -0
- data/node_modules/moment/src/lib/units/week-year.js +107 -0
- data/node_modules/moment/src/lib/units/week.js +67 -0
- data/node_modules/moment/src/lib/units/year.js +75 -0
- data/node_modules/moment/src/lib/utils/abs-ceil.js +7 -0
- data/node_modules/moment/src/lib/utils/abs-floor.js +8 -0
- data/node_modules/moment/src/lib/utils/abs-round.js +7 -0
- data/node_modules/moment/src/lib/utils/compare-arrays.js +16 -0
- data/node_modules/moment/src/lib/utils/defaults.js +10 -0
- data/node_modules/moment/src/lib/utils/deprecate.js +55 -0
- data/node_modules/moment/src/lib/utils/extend.js +19 -0
- data/node_modules/moment/src/lib/utils/has-own-prop.js +3 -0
- data/node_modules/moment/src/lib/utils/hooks.js +13 -0
- data/node_modules/moment/src/lib/utils/index-of.js +18 -0
- data/node_modules/moment/src/lib/utils/is-array.js +3 -0
- data/node_modules/moment/src/lib/utils/is-date.js +3 -0
- data/node_modules/moment/src/lib/utils/is-function.js +3 -0
- data/node_modules/moment/src/lib/utils/is-number.js +3 -0
- data/node_modules/moment/src/lib/utils/is-object-empty.js +13 -0
- data/node_modules/moment/src/lib/utils/is-object.js +5 -0
- data/node_modules/moment/src/lib/utils/is-undefined.js +3 -0
- data/node_modules/moment/src/lib/utils/keys.js +19 -0
- data/node_modules/moment/src/lib/utils/map.js +7 -0
- data/node_modules/moment/src/lib/utils/mod.js +3 -0
- data/node_modules/moment/src/lib/utils/some.js +19 -0
- data/node_modules/moment/src/lib/utils/to-int.js +12 -0
- data/node_modules/moment/src/lib/utils/zero-fill.js +7 -0
- data/node_modules/moment/src/locale/af.js +64 -0
- data/node_modules/moment/src/locale/ar-dz.js +51 -0
- data/node_modules/moment/src/locale/ar-kw.js +50 -0
- data/node_modules/moment/src/locale/ar-ly.js +113 -0
- data/node_modules/moment/src/locale/ar-ma.js +52 -0
- data/node_modules/moment/src/locale/ar-sa.js +96 -0
- data/node_modules/moment/src/locale/ar-tn.js +51 -0
- data/node_modules/moment/src/locale/ar.js +128 -0
- data/node_modules/moment/src/locale/az.js +97 -0
- data/node_modules/moment/src/locale/be.js +126 -0
- data/node_modules/moment/src/locale/bg.js +82 -0
- data/node_modules/moment/src/locale/bm.js +50 -0
- data/node_modules/moment/src/locale/bn.js +110 -0
- data/node_modules/moment/src/locale/bo.js +111 -0
- data/node_modules/moment/src/locale/br.js +100 -0
- data/node_modules/moment/src/locale/bs.js +143 -0
- data/node_modules/moment/src/locale/ca.js +80 -0
- data/node_modules/moment/src/locale/cs.js +164 -0
- data/node_modules/moment/src/locale/cv.js +54 -0
- data/node_modules/moment/src/locale/cy.js +73 -0
- data/node_modules/moment/src/locale/da.js +51 -0
- data/node_modules/moment/src/locale/de-at.js +70 -0
- data/node_modules/moment/src/locale/de-ch.js +69 -0
- data/node_modules/moment/src/locale/de.js +69 -0
- data/node_modules/moment/src/locale/dv.js +90 -0
- data/node_modules/moment/src/locale/el.js +89 -0
- data/node_modules/moment/src/locale/en-SG.js +59 -0
- data/node_modules/moment/src/locale/en-au.js +58 -0
- data/node_modules/moment/src/locale/en-ca.js +54 -0
- data/node_modules/moment/src/locale/en-gb.js +59 -0
- data/node_modules/moment/src/locale/en-ie.js +59 -0
- data/node_modules/moment/src/locale/en-il.js +54 -0
- data/node_modules/moment/src/locale/en-nz.js +58 -0
- data/node_modules/moment/src/locale/eo.js +65 -0
- data/node_modules/moment/src/locale/es-do.js +83 -0
- data/node_modules/moment/src/locale/es-us.js +84 -0
- data/node_modules/moment/src/locale/es.js +83 -0
- data/node_modules/moment/src/locale/et.js +73 -0
- data/node_modules/moment/src/locale/eu.js +58 -0
- data/node_modules/moment/src/locale/fa.js +98 -0
- data/node_modules/moment/src/locale/fi.js +101 -0
- data/node_modules/moment/src/locale/fo.js +53 -0
- data/node_modules/moment/src/locale/fr-ca.js +66 -0
- data/node_modules/moment/src/locale/fr-ch.js +70 -0
- data/node_modules/moment/src/locale/fr.js +75 -0
- data/node_modules/moment/src/locale/fy.js +67 -0
- data/node_modules/moment/src/locale/ga.js +68 -0
- data/node_modules/moment/src/locale/gd.js +68 -0
- data/node_modules/moment/src/locale/gl.js +69 -0
- data/node_modules/moment/src/locale/gom-latn.js +114 -0
- data/node_modules/moment/src/locale/gu.js +115 -0
- data/node_modules/moment/src/locale/he.js +91 -0
- data/node_modules/moment/src/locale/hi.js +116 -0
- data/node_modules/moment/src/locale/hr.js +145 -0
- data/node_modules/moment/src/locale/hu.js +103 -0
- data/node_modules/moment/src/locale/hy-am.js +87 -0
- data/node_modules/moment/src/locale/id.js +74 -0
- data/node_modules/moment/src/locale/is.js +124 -0
- data/node_modules/moment/src/locale/it-ch.js +61 -0
- data/node_modules/moment/src/locale/it.js +62 -0
- data/node_modules/moment/src/locale/ja.js +84 -0
- data/node_modules/moment/src/locale/jv.js +74 -0
- data/node_modules/moment/src/locale/ka.js +81 -0
- data/node_modules/moment/src/locale/kk.js +78 -0
- data/node_modules/moment/src/locale/km.js +101 -0
- data/node_modules/moment/src/locale/kn.js +117 -0
- data/node_modules/moment/src/locale/ko.js +74 -0
- data/node_modules/moment/src/locale/ku.js +110 -0
- data/node_modules/moment/src/locale/ky.js +79 -0
- data/node_modules/moment/src/locale/lb.js +129 -0
- data/node_modules/moment/src/locale/lo.js +62 -0
- data/node_modules/moment/src/locale/lt.js +110 -0
- data/node_modules/moment/src/locale/lv.js +90 -0
- data/node_modules/moment/src/locale/me.js +103 -0
- data/node_modules/moment/src/locale/mi.js +55 -0
- data/node_modules/moment/src/locale/mk.js +82 -0
- data/node_modules/moment/src/locale/ml.js +73 -0
- data/node_modules/moment/src/locale/mn.js +96 -0
- data/node_modules/moment/src/locale/mr.js +153 -0
- data/node_modules/moment/src/locale/ms-my.js +75 -0
- data/node_modules/moment/src/locale/ms.js +74 -0
- data/node_modules/moment/src/locale/mt.js +51 -0
- data/node_modules/moment/src/locale/my.js +87 -0
- data/node_modules/moment/src/locale/nb.js +55 -0
- data/node_modules/moment/src/locale/ne.js +115 -0
- data/node_modules/moment/src/locale/nl-be.js +80 -0
- data/node_modules/moment/src/locale/nl.js +80 -0
- data/node_modules/moment/src/locale/nn.js +52 -0
- data/node_modules/moment/src/locale/pa-in.js +116 -0
- data/node_modules/moment/src/locale/pl.js +117 -0
- data/node_modules/moment/src/locale/pt-br.js +53 -0
- data/node_modules/moment/src/locale/pt.js +57 -0
- data/node_modules/moment/src/locale/ro.js +68 -0
- data/node_modules/moment/src/locale/ru.js +175 -0
- data/node_modules/moment/src/locale/sd.js +89 -0
- data/node_modules/moment/src/locale/se.js +52 -0
- data/node_modules/moment/src/locale/si.js +62 -0
- data/node_modules/moment/src/locale/sk.js +149 -0
- data/node_modules/moment/src/locale/sl.js +164 -0
- data/node_modules/moment/src/locale/sq.js +62 -0
- data/node_modules/moment/src/locale/sr-cyrl.js +102 -0
- data/node_modules/moment/src/locale/sr.js +102 -0
- data/node_modules/moment/src/locale/ss.js +81 -0
- data/node_modules/moment/src/locale/sv.js +61 -0
- data/node_modules/moment/src/locale/sw.js +51 -0
- data/node_modules/moment/src/locale/ta.js +121 -0
- data/node_modules/moment/src/locale/te.js +80 -0
- data/node_modules/moment/src/locale/tet.js +60 -0
- data/node_modules/moment/src/locale/tg.js +107 -0
- data/node_modules/moment/src/locale/th.js +58 -0
- data/node_modules/moment/src/locale/tl-ph.js +54 -0
- data/node_modules/moment/src/locale/tlh.js +113 -0
- data/node_modules/moment/src/locale/tr.js +90 -0
- data/node_modules/moment/src/locale/tzl.js +84 -0
- data/node_modules/moment/src/locale/tzm-latn.js +50 -0
- data/node_modules/moment/src/locale/tzm.js +50 -0
- data/node_modules/moment/src/locale/ug-cn.js +110 -0
- data/node_modules/moment/src/locale/uk.js +146 -0
- data/node_modules/moment/src/locale/ur.js +90 -0
- data/node_modules/moment/src/locale/uz-latn.js +50 -0
- data/node_modules/moment/src/locale/uz.js +50 -0
- data/node_modules/moment/src/locale/vi.js +71 -0
- data/node_modules/moment/src/locale/x-pseudo.js +59 -0
- data/node_modules/moment/src/locale/yo.js +51 -0
- data/node_modules/moment/src/locale/zh-cn.js +102 -0
- data/node_modules/moment/src/locale/zh-hk.js +96 -0
- data/node_modules/moment/src/locale/zh-tw.js +95 -0
- data/node_modules/moment/src/moment.js +95 -0
- data/package.json +2 -0
- data/public/packs/js/application-0619dab0850a6efc7438.js +38148 -0
- data/public/packs/js/application-0619dab0850a6efc7438.js.map +1 -0
- data/public/packs/js/application-20352c48a8043c0951ac.js +38148 -0
- data/public/packs/js/application-20352c48a8043c0951ac.js.map +1 -0
- data/public/packs/js/application-c5495aaaa9c6e6b908e8.js +38148 -0
- data/public/packs/js/application-c5495aaaa9c6e6b908e8.js.map +1 -0
- data/public/packs/manifest.json +4 -4
- data/random.rb +1 -0
- data/test/controllers/address_searches_controller_test.rb +48 -0
- data/test/controllers/banal/documents_controller_test.rb +48 -0
- data/test/controllers/banal/employees_controller_test.rb +48 -0
- data/test/controllers/banal/links_controller_test.rb +48 -0
- data/test/controllers/banal/metadata_controller_test.rb +48 -0
- data/test/controllers/banal/projects_controller_test.rb +2 -2
- data/test/controllers/banal/related_objects_controller_test.rb +48 -0
- data/test/controllers/banal_complexes_controller_test.rb +48 -0
- data/test/controllers/comments_controller_test.rb +48 -0
- data/test/controllers/employees_controller_test.rb +48 -0
- data/test/fixtures/address_searches.yml +9 -0
- data/test/fixtures/banal/documents.yml +11 -0
- data/test/fixtures/banal/employees.yml +29 -0
- data/test/fixtures/banal/links.yml +11 -0
- data/test/fixtures/banal/metadata.yml +11 -0
- data/test/fixtures/banal/projects.yml +16 -0
- data/test/fixtures/banal/related_objects.yml +9 -0
- data/test/fixtures/banal_complexes.yml +9 -0
- data/test/fixtures/comments.yml +11 -0
- data/test/fixtures/employees.yml +29 -0
- data/test/models/address_search_test.rb +7 -0
- data/test/models/banal/document_test.rb +7 -0
- data/test/models/banal/employee_test.rb +7 -0
- data/test/models/banal/link_test.rb +7 -0
- data/test/models/banal/metadatum_test.rb +7 -0
- data/test/models/banal/related_object_test.rb +7 -0
- data/test/models/banal_complex_test.rb +7 -0
- data/test/models/comment_test.rb +7 -0
- data/test/models/employee_test.rb +7 -0
- data/test/system/address_searches_test.rb +45 -0
- data/test/system/banal/documents_test.rb +47 -0
- data/test/system/banal/employees_test.rb +65 -0
- data/test/system/banal/links_test.rb +47 -0
- data/test/system/banal/metadata_test.rb +47 -0
- data/test/system/banal/projects_test.rb +16 -0
- data/test/system/banal/related_objects_test.rb +45 -0
- data/test/system/banal_complexes_test.rb +45 -0
- data/test/system/comments_test.rb +47 -0
- data/test/system/employees_test.rb +65 -0
- data/yarn.lock +38 -0
- metadata +587 -8
- data/db/migrate/20190912173649_create_banal_projects.rb +0 -9
@@ -0,0 +1,92 @@
|
|
1
|
+
var conversions = require("./conversions");
|
2
|
+
|
3
|
+
var convert = function() {
|
4
|
+
return new Converter();
|
5
|
+
}
|
6
|
+
|
7
|
+
for (var func in conversions) {
|
8
|
+
// export Raw versions
|
9
|
+
convert[func + "Raw"] = (function(func) {
|
10
|
+
// accept array or plain args
|
11
|
+
return function(arg) {
|
12
|
+
if (typeof arg == "number")
|
13
|
+
arg = Array.prototype.slice.call(arguments);
|
14
|
+
return conversions[func](arg);
|
15
|
+
}
|
16
|
+
})(func);
|
17
|
+
|
18
|
+
var pair = /(\w+)2(\w+)/.exec(func),
|
19
|
+
from = pair[1],
|
20
|
+
to = pair[2];
|
21
|
+
|
22
|
+
// export rgb2hsl and ["rgb"]["hsl"]
|
23
|
+
convert[from] = convert[from] || {};
|
24
|
+
|
25
|
+
convert[from][to] = convert[func] = (function(func) {
|
26
|
+
return function(arg) {
|
27
|
+
if (typeof arg == "number")
|
28
|
+
arg = Array.prototype.slice.call(arguments);
|
29
|
+
|
30
|
+
var val = conversions[func](arg);
|
31
|
+
if (typeof val == "string" || val === undefined)
|
32
|
+
return val; // keyword
|
33
|
+
|
34
|
+
for (var i = 0; i < val.length; i++)
|
35
|
+
val[i] = Math.round(val[i]);
|
36
|
+
return val;
|
37
|
+
}
|
38
|
+
})(func);
|
39
|
+
}
|
40
|
+
|
41
|
+
|
42
|
+
/* Converter does lazy conversion and caching */
|
43
|
+
var Converter = function() {
|
44
|
+
this.convs = {};
|
45
|
+
};
|
46
|
+
|
47
|
+
/* Either get the values for a space or
|
48
|
+
set the values for a space, depending on args */
|
49
|
+
Converter.prototype.routeSpace = function(space, args) {
|
50
|
+
var values = args[0];
|
51
|
+
if (values === undefined) {
|
52
|
+
// color.rgb()
|
53
|
+
return this.getValues(space);
|
54
|
+
}
|
55
|
+
// color.rgb(10, 10, 10)
|
56
|
+
if (typeof values == "number") {
|
57
|
+
values = Array.prototype.slice.call(args);
|
58
|
+
}
|
59
|
+
|
60
|
+
return this.setValues(space, values);
|
61
|
+
};
|
62
|
+
|
63
|
+
/* Set the values for a space, invalidating cache */
|
64
|
+
Converter.prototype.setValues = function(space, values) {
|
65
|
+
this.space = space;
|
66
|
+
this.convs = {};
|
67
|
+
this.convs[space] = values;
|
68
|
+
return this;
|
69
|
+
};
|
70
|
+
|
71
|
+
/* Get the values for a space. If there's already
|
72
|
+
a conversion for the space, fetch it, otherwise
|
73
|
+
compute it */
|
74
|
+
Converter.prototype.getValues = function(space) {
|
75
|
+
var vals = this.convs[space];
|
76
|
+
if (!vals) {
|
77
|
+
var fspace = this.space,
|
78
|
+
from = this.convs[fspace];
|
79
|
+
vals = convert[fspace][space](from);
|
80
|
+
|
81
|
+
this.convs[space] = vals;
|
82
|
+
}
|
83
|
+
return vals;
|
84
|
+
};
|
85
|
+
|
86
|
+
["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function(space) {
|
87
|
+
Converter.prototype[space] = function(vals) {
|
88
|
+
return this.routeSpace(space, arguments);
|
89
|
+
}
|
90
|
+
});
|
91
|
+
|
92
|
+
module.exports = convert;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
{
|
2
|
+
"name": "color-convert",
|
3
|
+
"description": "Plain color conversion functions",
|
4
|
+
"version": "0.5.3",
|
5
|
+
"author": "Heather Arthur <fayearthur@gmail.com>",
|
6
|
+
"repository": {
|
7
|
+
"type": "git",
|
8
|
+
"url": "http://github.com/harthur/color-convert.git"
|
9
|
+
},
|
10
|
+
"devDependencies": {
|
11
|
+
},
|
12
|
+
"scripts": {
|
13
|
+
"test": "node test/basic.js"
|
14
|
+
},
|
15
|
+
"keywords": [
|
16
|
+
"color",
|
17
|
+
"colour",
|
18
|
+
"rgb"
|
19
|
+
]
|
20
|
+
}
|
@@ -0,0 +1,187 @@
|
|
1
|
+
var convert = require("../index"),
|
2
|
+
assert = require("assert");
|
3
|
+
|
4
|
+
assert.deepEqual(convert.rgb2hsl([140, 200, 100]), [96, 48, 59]);
|
5
|
+
assert.deepEqual(convert.rgb2hsv([140, 200, 100]), [96, 50, 78]);
|
6
|
+
assert.deepEqual(convert.rgb2hwb([140, 200, 100]), [96, 39, 22]);
|
7
|
+
assert.deepEqual(convert.rgb2cmyk([140, 200, 100]), [30, 0, 50, 22]);
|
8
|
+
assert.deepEqual(convert.rgb2cmyk([0,0,0,1]), [0,0,0,100]);
|
9
|
+
assert.deepEqual(convert.rgb2keyword([255, 228, 196]), "bisque");
|
10
|
+
assert.deepEqual(convert.rgb2xyz([92, 191, 84]), [25, 40, 15]);
|
11
|
+
assert.deepEqual(convert.rgb2lab([92, 191, 84]), [70, -50, 45]);
|
12
|
+
assert.deepEqual(convert.rgb2lch([92, 191, 84]), [70, 67, 138]);
|
13
|
+
|
14
|
+
assert.deepEqual(convert.hsl2rgb([96, 48, 59]), [140, 201, 100]);
|
15
|
+
assert.deepEqual(convert.hsl2hsv([96, 48, 59]), [96, 50, 79]); // colorpicker says [96,50,79]
|
16
|
+
assert.deepEqual(convert.hsl2hwb([96, 48, 59]), [96, 39, 21]); // computer round to 21, should be 22
|
17
|
+
assert.deepEqual(convert.hsl2cmyk([96, 48, 59]), [30, 0, 50, 21]);
|
18
|
+
assert.deepEqual(convert.hsl2keyword([240, 100, 50]), "blue");
|
19
|
+
|
20
|
+
assert.deepEqual(convert.hsv2rgb([96, 50, 78]), [139, 199, 99]);
|
21
|
+
assert.deepEqual(convert.hsv2hsl([96, 50, 78]), [96, 47, 59]);
|
22
|
+
assert.deepEqual(convert.hsv2hsl([0,0,0]), [0,0,0]);
|
23
|
+
assert.deepEqual(convert.hsv2hwb([96, 50, 78]), [96, 39, 22]);
|
24
|
+
assert.deepEqual(convert.hsv2cmyk([96, 50, 78]), [30, 0, 50, 22]);
|
25
|
+
assert.deepEqual(convert.hsv2keyword([240, 100, 100]), "blue");
|
26
|
+
|
27
|
+
assert.deepEqual(convert.cmyk2rgb([30, 0, 50, 22]), [139, 199, 99]);
|
28
|
+
assert.deepEqual(convert.cmyk2hsl([30, 0, 50, 22]), [96, 47, 59]);
|
29
|
+
assert.deepEqual(convert.cmyk2hsv([30, 0, 50, 22]), [96, 50, 78]);
|
30
|
+
assert.deepEqual(convert.cmyk2hwb([30, 0, 50, 22]), [96, 39, 22]);
|
31
|
+
assert.deepEqual(convert.cmyk2keyword([100, 100, 0, 0]), "blue");
|
32
|
+
|
33
|
+
assert.deepEqual(convert.keyword2rgb("blue"), [0, 0, 255]);
|
34
|
+
assert.deepEqual(convert.keyword2hsl("blue"), [240, 100, 50]);
|
35
|
+
assert.deepEqual(convert.keyword2hsv("blue"), [240, 100, 100]);
|
36
|
+
assert.deepEqual(convert.keyword2hwb("blue"), [240, 0, 0]);
|
37
|
+
assert.deepEqual(convert.keyword2cmyk("blue"), [100, 100, 0, 0]);
|
38
|
+
assert.deepEqual(convert.keyword2lab("blue"), [32, 79, -108]);
|
39
|
+
assert.deepEqual(convert.keyword2xyz("blue"), [18, 7, 95]);
|
40
|
+
|
41
|
+
assert.deepEqual(convert.xyz2rgb([25, 40, 15]), [97, 190, 85]);
|
42
|
+
assert.deepEqual(convert.xyz2rgb([50, 100, 100]), [0, 255, 241]);
|
43
|
+
assert.deepEqual(convert.xyz2lab([25, 40, 15]), [69, -48, 44]);
|
44
|
+
assert.deepEqual(convert.xyz2lch([25, 40, 15]), [69, 65, 137]);
|
45
|
+
|
46
|
+
assert.deepEqual(convert.lab2xyz([69, -48, 44]), [25, 39, 15]);
|
47
|
+
assert.deepEqual(convert.lab2rgb([75, 20, -30]), [194, 175, 240]);
|
48
|
+
assert.deepEqual(convert.lab2lch([69, -48, 44]), [69, 65, 137]);
|
49
|
+
|
50
|
+
assert.deepEqual(convert.lch2lab([69, 65, 137]), [69, -48, 44]);
|
51
|
+
assert.deepEqual(convert.lch2xyz([69, 65, 137]), [25, 39, 15]);
|
52
|
+
assert.deepEqual(convert.lch2rgb([69, 65, 137]), [98, 188, 83]);
|
53
|
+
|
54
|
+
// non-array arguments
|
55
|
+
assert.deepEqual(convert.hsl2rgb(96, 48, 59), [140, 201, 100]);
|
56
|
+
|
57
|
+
// raw functions
|
58
|
+
function round(vals) {
|
59
|
+
for (var i = 0; i < vals.length; i++)
|
60
|
+
vals[i] = vals[i].toFixed(1);
|
61
|
+
return vals;
|
62
|
+
}
|
63
|
+
|
64
|
+
assert.deepEqual(round(convert.hsl2rgbRaw([96, 48, 59])), [140.4, 200.6, 100.3]);
|
65
|
+
assert.deepEqual(round(convert.rgb2hslRaw([140, 200, 100])), [96, 47.6, 58.8]);
|
66
|
+
|
67
|
+
assert.deepEqual(round(convert.hsv2rgbRaw([96, 50, 78])), [139.2, 198.9, 99.5]);
|
68
|
+
assert.deepEqual(round(convert.rgb2hsvRaw([140, 200, 100])), [96, 50, 78.4]);
|
69
|
+
|
70
|
+
assert.deepEqual(round(convert.hwb2rgbRaw([96, 39, 22])), [139.2, 198.9, 99.5]);
|
71
|
+
assert.deepEqual(round(convert.rgb2hwbRaw([140, 200, 100])), [96, 39.2, 21.6]);
|
72
|
+
|
73
|
+
assert.deepEqual(round(convert.cmyk2rgbRaw([30, 0, 50, 22])), [139.2, 198.9, 99.5]);
|
74
|
+
assert.deepEqual(round(convert.rgb2cmykRaw([140, 200, 100])), [30, 0, 50, 21.6]);
|
75
|
+
|
76
|
+
assert.deepEqual(round(convert.keyword2rgbRaw("blue")), [0, 0, 255]);
|
77
|
+
assert.deepEqual(convert.rgb2keywordRaw([255, 228, 196]), "bisque");
|
78
|
+
|
79
|
+
assert.deepEqual(round(convert.hsv2hslRaw([96, 50, 78])), [96, 47, 58.5]);
|
80
|
+
assert.deepEqual(round(convert.hsl2hsvRaw([96, 48, 59])), [96, 50, 78.7]);
|
81
|
+
|
82
|
+
assert.deepEqual(round(convert.hsl2hsvRaw([96, 48, 59])), [96, 50, 78.7]);
|
83
|
+
|
84
|
+
assert.deepEqual(round(convert.xyz2rgbRaw([25, 40, 15])), [97.4, 189.9, 85]);
|
85
|
+
assert.deepEqual(round(convert.rgb2xyzRaw([92, 191, 84])), [24.6, 40.2, 14.8]);
|
86
|
+
|
87
|
+
assert.deepEqual(round(convert.rgb2labRaw([92, 191, 84])), [69.6, -50.1, 44.6]);
|
88
|
+
|
89
|
+
// hashed
|
90
|
+
var val = [140, 200, 100];
|
91
|
+
assert.deepEqual(convert["rgb"]["hsl"](val), convert.rgb2hsl(val));
|
92
|
+
assert.deepEqual(convert["rgb"]["hsv"](val), convert.rgb2hsv(val));
|
93
|
+
assert.deepEqual(convert["rgb"]["hwb"](val), convert.rgb2hwb(val));
|
94
|
+
assert.deepEqual(convert["rgb"]["cmyk"](val), convert.rgb2cmyk(val));
|
95
|
+
assert.deepEqual(convert["rgb"]["xyz"](val), convert.rgb2xyz(val));
|
96
|
+
assert.deepEqual(convert["rgb"]["lab"](val), convert.rgb2lab(val));
|
97
|
+
assert.deepEqual(convert["rgb"]["keyword"]([255, 228, 196]), "bisque");
|
98
|
+
|
99
|
+
val = [96, 48, 59];
|
100
|
+
assert.deepEqual(convert["hsl"]["rgb"](val), convert.hsl2rgb(val));
|
101
|
+
assert.deepEqual(convert["hsl"]["hsv"](val), convert.hsl2hsv(val));
|
102
|
+
assert.deepEqual(convert["hsl"]["hwb"](val), convert.hsl2hwb(val));
|
103
|
+
assert.deepEqual(convert["hsl"]["cmyk"](val), convert.hsl2cmyk(val));
|
104
|
+
assert.deepEqual(convert["hsl"]["keyword"](val), convert.hsl2keyword(val ));
|
105
|
+
|
106
|
+
val = [96, 50, 78];
|
107
|
+
assert.deepEqual(convert["hsv"]["rgb"](val), convert.hsv2rgb(val));
|
108
|
+
assert.deepEqual(convert["hsv"]["hsl"](val), convert.hsv2hsl(val));
|
109
|
+
assert.deepEqual(convert["hsv"]["hwb"](val), convert.hsv2hwb(val));
|
110
|
+
assert.deepEqual(convert["hsv"]["cmyk"](val), convert.hsv2cmyk(val));
|
111
|
+
assert.deepEqual(convert["hsv"]["keyword"](val), convert.hsv2keyword(val));
|
112
|
+
|
113
|
+
val = [30, 0, 50, 22];
|
114
|
+
assert.deepEqual(convert["cmyk"]["rgb"](val), convert.cmyk2rgb(val));
|
115
|
+
assert.deepEqual(convert["cmyk"]["hsl"](val), convert.cmyk2hsl(val));
|
116
|
+
assert.deepEqual(convert["cmyk"]["hsv"](val), convert.cmyk2hsv(val));
|
117
|
+
assert.deepEqual(convert["cmyk"]["hwb"](val), convert.cmyk2hwb(val));
|
118
|
+
assert.deepEqual(convert["cmyk"]["keyword"](val), convert.cmyk2keyword(val));
|
119
|
+
|
120
|
+
val = "blue";
|
121
|
+
assert.deepEqual(convert["keyword"]["rgb"](val), convert.keyword2rgb(val));
|
122
|
+
assert.deepEqual(convert["keyword"]["hsl"](val), convert.keyword2hsl(val));
|
123
|
+
assert.deepEqual(convert["keyword"]["hsv"](val), convert.keyword2hsv(val));
|
124
|
+
assert.deepEqual(convert["keyword"]["hwb"](val), convert.keyword2hwb(val));
|
125
|
+
assert.deepEqual(convert["keyword"]["cmyk"](val), convert.keyword2cmyk(val));
|
126
|
+
assert.deepEqual(convert["keyword"]["lab"](val), convert.keyword2lab(val));
|
127
|
+
assert.deepEqual(convert["keyword"]["xyz"](val), convert.keyword2xyz(val));
|
128
|
+
|
129
|
+
val = [25, 40, 15]
|
130
|
+
assert.deepEqual(convert["xyz"]["rgb"](val), convert.xyz2rgb(val));
|
131
|
+
assert.deepEqual(convert["xyz"]["lab"](val), convert.xyz2lab(val));
|
132
|
+
|
133
|
+
val = [69, -48, 44];
|
134
|
+
assert.deepEqual(convert["lab"]["xyz"](val), [25, 39, 15]);
|
135
|
+
|
136
|
+
|
137
|
+
// converter
|
138
|
+
var converter = convert();
|
139
|
+
|
140
|
+
var vals = [140, 200, 100];
|
141
|
+
converter.rgb(140, 200, 100);
|
142
|
+
|
143
|
+
assert.deepEqual(converter.hsl(), convert.rgb2hsl(vals));
|
144
|
+
assert.deepEqual(converter.hsv(), convert.rgb2hsv(vals));
|
145
|
+
assert.deepEqual(converter.cmyk(), convert.rgb2cmyk(vals));
|
146
|
+
assert.deepEqual(converter.rgb(), vals);
|
147
|
+
assert.deepEqual(converter.rgb([255, 228, 196]).keyword(), "bisque");
|
148
|
+
|
149
|
+
vals = [96, 48, 59];
|
150
|
+
converter.hsl(vals);
|
151
|
+
assert.deepEqual(converter.rgb(), convert.hsl2rgb(vals));
|
152
|
+
assert.deepEqual(converter.hsv(), convert.hsl2hsv(vals));
|
153
|
+
assert.deepEqual(converter.cmyk(), convert.hsl2cmyk(vals));
|
154
|
+
assert.deepEqual(converter.keyword(), convert.hsl2keyword(vals));
|
155
|
+
|
156
|
+
// hwb
|
157
|
+
// http://dev.w3.org/csswg/css-color/#hwb-examples
|
158
|
+
|
159
|
+
// all extrem value should give black, white or grey
|
160
|
+
for(var angle = 0; angle <= 360; angle ++) {
|
161
|
+
assert.deepEqual(convert.hwb2rgb([angle, 0, 100]), [0, 0, 0]);
|
162
|
+
assert.deepEqual(convert.hwb2rgb([angle, 100, 0]), [255, 255, 255]);
|
163
|
+
assert.deepEqual(convert.hwb2rgb([angle, 100, 100]), [128, 128, 128]);
|
164
|
+
}
|
165
|
+
|
166
|
+
assert.deepEqual(convert.hwb2rgb([0, 0, 0]), [255,0,0]);
|
167
|
+
assert.deepEqual(convert.hwb2rgb([0, 20, 40]), [153, 51, 51]);
|
168
|
+
assert.deepEqual(convert.hwb2rgb([0, 40, 40]), [153, 102, 102]);
|
169
|
+
assert.deepEqual(convert.hwb2rgb([0, 40, 20]), [204, 102, 102]);
|
170
|
+
|
171
|
+
assert.deepEqual(convert.hwb2rgb([120, 0, 0]), [0,255,0]);
|
172
|
+
assert.deepEqual(convert.hwb2rgb([120, 20, 40]), [51, 153, 51]);
|
173
|
+
assert.deepEqual(convert.hwb2rgb([120, 40, 40]), [102, 153, 102]);
|
174
|
+
assert.deepEqual(convert.hwb2rgb([120, 40, 20]), [102, 204, 102]);
|
175
|
+
|
176
|
+
assert.deepEqual(convert.hwb2rgb([240, 0, 0]), [0,0,255]);
|
177
|
+
assert.deepEqual(convert.hwb2rgb([240, 20, 40]), [51, 51, 153]);
|
178
|
+
assert.deepEqual(convert.hwb2rgb([240, 40, 40]), [102, 102, 153]);
|
179
|
+
assert.deepEqual(convert.hwb2rgb([240, 40, 20]), [102, 102, 204]);
|
180
|
+
|
181
|
+
|
182
|
+
// black should always stay black
|
183
|
+
val = [0, 0, 0];
|
184
|
+
assert.deepEqual(convert.hsl2hsv(val), val);
|
185
|
+
assert.deepEqual(convert.hsl2rgb(val), val);
|
186
|
+
assert.deepEqual(convert.hsl2hwb(val), [0, 0, 100]);
|
187
|
+
assert.deepEqual(convert.hsl2cmyk(val), [0, 0, 0, 100]);
|
@@ -0,0 +1,23 @@
|
|
1
|
+
var convert = require("../index");
|
2
|
+
|
3
|
+
var converter = convert();
|
4
|
+
|
5
|
+
var times = 10000;
|
6
|
+
|
7
|
+
console.time("cached");
|
8
|
+
converter.rgb(10, 2, 30);
|
9
|
+
for(var i = 0; i < times; i++) {
|
10
|
+
converter.hsv();
|
11
|
+
converter.hsl();
|
12
|
+
converter.cmyk();
|
13
|
+
}
|
14
|
+
console.timeEnd("cached");
|
15
|
+
|
16
|
+
console.time("uncached");
|
17
|
+
for(var i = 0; i < times; i++) {
|
18
|
+
convert.rgb2hsl(10, 2, 30);
|
19
|
+
convert.rgb2hsv(10, 2, 30);
|
20
|
+
convert.rgb2cmyk(10, 2, 30);
|
21
|
+
}
|
22
|
+
console.timeEnd("uncached");
|
23
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
{
|
2
|
+
"name": "chartjs-color",
|
3
|
+
"version": "2.3.0",
|
4
|
+
"description": "Color conversion and manipulation with CSS string support",
|
5
|
+
"keywords": [
|
6
|
+
"color",
|
7
|
+
"colour",
|
8
|
+
"css"
|
9
|
+
],
|
10
|
+
"authors": [
|
11
|
+
"Heather Arthur <fayearthur@gmail.com>",
|
12
|
+
"Maxime Thirouin",
|
13
|
+
"Josh Junon"
|
14
|
+
],
|
15
|
+
"license": "MIT",
|
16
|
+
"repository": "chartjs/chartjs-color",
|
17
|
+
"xo": {
|
18
|
+
"envs": ["browser", "node"],
|
19
|
+
"rules": {
|
20
|
+
"one-var": [2, { "initialized": "never" }],
|
21
|
+
"linebreak-style": 0,
|
22
|
+
"no-cond-assign": 0,
|
23
|
+
"new-cap": 0
|
24
|
+
}
|
25
|
+
},
|
26
|
+
"files": [
|
27
|
+
"CHANGELOG.md",
|
28
|
+
"LICENSE",
|
29
|
+
"index.js"
|
30
|
+
],
|
31
|
+
"scripts": {
|
32
|
+
"pretest": "xo",
|
33
|
+
"test": "mocha"
|
34
|
+
},
|
35
|
+
"dependencies": {
|
36
|
+
"color-convert": "^0.5.3",
|
37
|
+
"chartjs-color-string": "^0.6.0"
|
38
|
+
},
|
39
|
+
"devDependencies": {
|
40
|
+
"browserify": "^10.1.3",
|
41
|
+
"gulp": "^3.8.11",
|
42
|
+
"gulp-rename": "^1.2.2",
|
43
|
+
"gulp-uglify": "^1.2.0",
|
44
|
+
"gulp-streamify": "^1.0.2",
|
45
|
+
"mocha": "^2.2.5",
|
46
|
+
"vinyl-source-stream": "^1.1.0",
|
47
|
+
"xo": "^0.12.1"
|
48
|
+
}
|
49
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# 0.3.0
|
2
|
+
|
3
|
+
- Fixed: HSL alpha channel ([#16](https://github.com/harthur/color-string/pull/16))
|
4
|
+
- Fixed: ability to parse signed number ([#15](https://github.com/harthur/color-string/pull/15))
|
5
|
+
- Removed: component.json
|
6
|
+
- Removed: browser build
|
7
|
+
- Added: license field to package.json ([#17](https://github.com/harthur/color-string/pull/17))
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
Check out commit logs for earlier releases
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (c) 2011 Heather Arthur <fayearthur@gmail.com>
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# chartjs-color-string
|
2
|
+
|
3
|
+
[![npm](https://img.shields.io/npm/v/chartjs-color-string.svg?style=flat-square&maxAge=600)](https://npmjs.com/package/chartjs-color-string) [![Travis](https://img.shields.io/travis/chartjs/chartjs-color-string.svg?style=flat-square&maxAge=600)](https://travis-ci.org/chartjs/chartjs-color-string)
|
4
|
+
|
5
|
+
> library for parsing and generating CSS color strings.
|
6
|
+
|
7
|
+
## Install
|
8
|
+
|
9
|
+
With [npm](http://npmjs.org/):
|
10
|
+
|
11
|
+
```console
|
12
|
+
$ npm install color-string
|
13
|
+
```
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
### Parsing
|
18
|
+
|
19
|
+
```js
|
20
|
+
colorString.getRgb("blue") // [0, 0, 255]
|
21
|
+
colorString.getRgb("#FFF") // [255, 255, 255]
|
22
|
+
colorString.getRgba("#FFFA") //[255, 255, 255, 0.67]}
|
23
|
+
colorString.getRgba("#FFFFFFAA") // [255, 255, 255, 0.67]}
|
24
|
+
|
25
|
+
colorString.getRgba("rgba(200, 60, 60, 0.3)") // [200, 60, 60, 0.3]
|
26
|
+
colorString.getRgba("rgb(200, 200, 200)") // [200, 200, 200, 1]
|
27
|
+
|
28
|
+
colorString.getHsl("hsl(360, 100%, 50%)") // [360, 100, 50]
|
29
|
+
colorString.getHsla("hsla(360, 60%, 50%, 0.4)") // [360, 60, 50, 0.4]
|
30
|
+
|
31
|
+
colorString.getAlpha("rgba(200, 0, 12, 0.6)") // 0.6
|
32
|
+
```
|
33
|
+
|
34
|
+
### Generation
|
35
|
+
|
36
|
+
```js
|
37
|
+
colorString.hexString([255, 255, 255]) // "#FFFFFF"
|
38
|
+
colorString.hexString([0, 0, 255, 0.4]) // "#0000FF66"
|
39
|
+
colorString.hexString([0, 0, 255], 0.4) // "#0000FF66"
|
40
|
+
colorString.rgbString([255, 255, 255]) // "rgb(255, 255, 255)"
|
41
|
+
colorString.rgbString([0, 0, 255, 0.4]) // "rgba(0, 0, 255, 0.4)"
|
42
|
+
colorString.rgbString([0, 0, 255], 0.4) // "rgba(0, 0, 255, 0.4)"
|
43
|
+
colorString.percentString([0, 0, 255]) // "rgb(0%, 0%, 100%)"
|
44
|
+
colorString.keyword([255, 255, 0]) // "yellow"
|
45
|
+
colorString.hslString([360, 100, 100]) // "hsl(360, 100%, 100%)"
|
46
|
+
```
|
@@ -0,0 +1,237 @@
|
|
1
|
+
/* MIT license */
|
2
|
+
var colorNames = require('color-name');
|
3
|
+
|
4
|
+
module.exports = {
|
5
|
+
getRgba: getRgba,
|
6
|
+
getHsla: getHsla,
|
7
|
+
getRgb: getRgb,
|
8
|
+
getHsl: getHsl,
|
9
|
+
getHwb: getHwb,
|
10
|
+
getAlpha: getAlpha,
|
11
|
+
|
12
|
+
hexString: hexString,
|
13
|
+
rgbString: rgbString,
|
14
|
+
rgbaString: rgbaString,
|
15
|
+
percentString: percentString,
|
16
|
+
percentaString: percentaString,
|
17
|
+
hslString: hslString,
|
18
|
+
hslaString: hslaString,
|
19
|
+
hwbString: hwbString,
|
20
|
+
keyword: keyword
|
21
|
+
}
|
22
|
+
|
23
|
+
function getRgba(string) {
|
24
|
+
if (!string) {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
var abbr = /^#([a-fA-F0-9]{3,4})$/i,
|
28
|
+
hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,
|
29
|
+
rgba = /^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i,
|
30
|
+
per = /^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i,
|
31
|
+
keyword = /(\w+)/;
|
32
|
+
|
33
|
+
var rgb = [0, 0, 0],
|
34
|
+
a = 1,
|
35
|
+
match = string.match(abbr),
|
36
|
+
hexAlpha = "";
|
37
|
+
if (match) {
|
38
|
+
match = match[1];
|
39
|
+
hexAlpha = match[3];
|
40
|
+
for (var i = 0; i < rgb.length; i++) {
|
41
|
+
rgb[i] = parseInt(match[i] + match[i], 16);
|
42
|
+
}
|
43
|
+
if (hexAlpha) {
|
44
|
+
a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
else if (match = string.match(hex)) {
|
48
|
+
hexAlpha = match[2];
|
49
|
+
match = match[1];
|
50
|
+
for (var i = 0; i < rgb.length; i++) {
|
51
|
+
rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);
|
52
|
+
}
|
53
|
+
if (hexAlpha) {
|
54
|
+
a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
else if (match = string.match(rgba)) {
|
58
|
+
for (var i = 0; i < rgb.length; i++) {
|
59
|
+
rgb[i] = parseInt(match[i + 1]);
|
60
|
+
}
|
61
|
+
a = parseFloat(match[4]);
|
62
|
+
}
|
63
|
+
else if (match = string.match(per)) {
|
64
|
+
for (var i = 0; i < rgb.length; i++) {
|
65
|
+
rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);
|
66
|
+
}
|
67
|
+
a = parseFloat(match[4]);
|
68
|
+
}
|
69
|
+
else if (match = string.match(keyword)) {
|
70
|
+
if (match[1] == "transparent") {
|
71
|
+
return [0, 0, 0, 0];
|
72
|
+
}
|
73
|
+
rgb = colorNames[match[1]];
|
74
|
+
if (!rgb) {
|
75
|
+
return;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
for (var i = 0; i < rgb.length; i++) {
|
80
|
+
rgb[i] = scale(rgb[i], 0, 255);
|
81
|
+
}
|
82
|
+
if (!a && a != 0) {
|
83
|
+
a = 1;
|
84
|
+
}
|
85
|
+
else {
|
86
|
+
a = scale(a, 0, 1);
|
87
|
+
}
|
88
|
+
rgb[3] = a;
|
89
|
+
return rgb;
|
90
|
+
}
|
91
|
+
|
92
|
+
function getHsla(string) {
|
93
|
+
if (!string) {
|
94
|
+
return;
|
95
|
+
}
|
96
|
+
var hsl = /^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/;
|
97
|
+
var match = string.match(hsl);
|
98
|
+
if (match) {
|
99
|
+
var alpha = parseFloat(match[4]);
|
100
|
+
var h = scale(parseInt(match[1]), 0, 360),
|
101
|
+
s = scale(parseFloat(match[2]), 0, 100),
|
102
|
+
l = scale(parseFloat(match[3]), 0, 100),
|
103
|
+
a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);
|
104
|
+
return [h, s, l, a];
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
function getHwb(string) {
|
109
|
+
if (!string) {
|
110
|
+
return;
|
111
|
+
}
|
112
|
+
var hwb = /^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/;
|
113
|
+
var match = string.match(hwb);
|
114
|
+
if (match) {
|
115
|
+
var alpha = parseFloat(match[4]);
|
116
|
+
var h = scale(parseInt(match[1]), 0, 360),
|
117
|
+
w = scale(parseFloat(match[2]), 0, 100),
|
118
|
+
b = scale(parseFloat(match[3]), 0, 100),
|
119
|
+
a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);
|
120
|
+
return [h, w, b, a];
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
function getRgb(string) {
|
125
|
+
var rgba = getRgba(string);
|
126
|
+
return rgba && rgba.slice(0, 3);
|
127
|
+
}
|
128
|
+
|
129
|
+
function getHsl(string) {
|
130
|
+
var hsla = getHsla(string);
|
131
|
+
return hsla && hsla.slice(0, 3);
|
132
|
+
}
|
133
|
+
|
134
|
+
function getAlpha(string) {
|
135
|
+
var vals = getRgba(string);
|
136
|
+
if (vals) {
|
137
|
+
return vals[3];
|
138
|
+
}
|
139
|
+
else if (vals = getHsla(string)) {
|
140
|
+
return vals[3];
|
141
|
+
}
|
142
|
+
else if (vals = getHwb(string)) {
|
143
|
+
return vals[3];
|
144
|
+
}
|
145
|
+
}
|
146
|
+
|
147
|
+
// generators
|
148
|
+
function hexString(rgba, a) {
|
149
|
+
var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];
|
150
|
+
return "#" + hexDouble(rgba[0])
|
151
|
+
+ hexDouble(rgba[1])
|
152
|
+
+ hexDouble(rgba[2])
|
153
|
+
+ (
|
154
|
+
(a >= 0 && a < 1)
|
155
|
+
? hexDouble(Math.round(a * 255))
|
156
|
+
: ""
|
157
|
+
);
|
158
|
+
}
|
159
|
+
|
160
|
+
function rgbString(rgba, alpha) {
|
161
|
+
if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {
|
162
|
+
return rgbaString(rgba, alpha);
|
163
|
+
}
|
164
|
+
return "rgb(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + ")";
|
165
|
+
}
|
166
|
+
|
167
|
+
function rgbaString(rgba, alpha) {
|
168
|
+
if (alpha === undefined) {
|
169
|
+
alpha = (rgba[3] !== undefined ? rgba[3] : 1);
|
170
|
+
}
|
171
|
+
return "rgba(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2]
|
172
|
+
+ ", " + alpha + ")";
|
173
|
+
}
|
174
|
+
|
175
|
+
function percentString(rgba, alpha) {
|
176
|
+
if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {
|
177
|
+
return percentaString(rgba, alpha);
|
178
|
+
}
|
179
|
+
var r = Math.round(rgba[0]/255 * 100),
|
180
|
+
g = Math.round(rgba[1]/255 * 100),
|
181
|
+
b = Math.round(rgba[2]/255 * 100);
|
182
|
+
|
183
|
+
return "rgb(" + r + "%, " + g + "%, " + b + "%)";
|
184
|
+
}
|
185
|
+
|
186
|
+
function percentaString(rgba, alpha) {
|
187
|
+
var r = Math.round(rgba[0]/255 * 100),
|
188
|
+
g = Math.round(rgba[1]/255 * 100),
|
189
|
+
b = Math.round(rgba[2]/255 * 100);
|
190
|
+
return "rgba(" + r + "%, " + g + "%, " + b + "%, " + (alpha || rgba[3] || 1) + ")";
|
191
|
+
}
|
192
|
+
|
193
|
+
function hslString(hsla, alpha) {
|
194
|
+
if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {
|
195
|
+
return hslaString(hsla, alpha);
|
196
|
+
}
|
197
|
+
return "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)";
|
198
|
+
}
|
199
|
+
|
200
|
+
function hslaString(hsla, alpha) {
|
201
|
+
if (alpha === undefined) {
|
202
|
+
alpha = (hsla[3] !== undefined ? hsla[3] : 1);
|
203
|
+
}
|
204
|
+
return "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, "
|
205
|
+
+ alpha + ")";
|
206
|
+
}
|
207
|
+
|
208
|
+
// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax
|
209
|
+
// (hwb have alpha optional & 1 is default value)
|
210
|
+
function hwbString(hwb, alpha) {
|
211
|
+
if (alpha === undefined) {
|
212
|
+
alpha = (hwb[3] !== undefined ? hwb[3] : 1);
|
213
|
+
}
|
214
|
+
return "hwb(" + hwb[0] + ", " + hwb[1] + "%, " + hwb[2] + "%"
|
215
|
+
+ (alpha !== undefined && alpha !== 1 ? ", " + alpha : "") + ")";
|
216
|
+
}
|
217
|
+
|
218
|
+
function keyword(rgb) {
|
219
|
+
return reverseNames[rgb.slice(0, 3)];
|
220
|
+
}
|
221
|
+
|
222
|
+
// helpers
|
223
|
+
function scale(num, min, max) {
|
224
|
+
return Math.min(Math.max(min, num), max);
|
225
|
+
}
|
226
|
+
|
227
|
+
function hexDouble(num) {
|
228
|
+
var str = num.toString(16).toUpperCase();
|
229
|
+
return (str.length < 2) ? "0" + str : str;
|
230
|
+
}
|
231
|
+
|
232
|
+
|
233
|
+
//create a list of reverse color names
|
234
|
+
var reverseNames = {};
|
235
|
+
for (var name in colorNames) {
|
236
|
+
reverseNames[colorNames[name]] = name;
|
237
|
+
}
|