summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2015-03-01 02:57:02 -0500
committerJules Laplace <jules@okfoc.us>2015-03-01 02:57:02 -0500
commit48c6ecda32f329b2874d3f79310268819054ea3c (patch)
treec4e2efd21cf3089e79f11c224abf1e70d582b496 /js
parentfb46410c5cb6aab64ed61def053076ab0ef35635 (diff)
parent5b7549932c55ebe7388258fb19b65a907dd5d3d1 (diff)
Merge branch 'master' of lmno:ascii
Diffstat (limited to 'js')
-rw-r--r--js/clipboard.js2
-rw-r--r--js/color_code.js40
-rw-r--r--js/ui/controls.js8
-rw-r--r--js/util.js4
4 files changed, 49 insertions, 5 deletions
diff --git a/js/clipboard.js b/js/clipboard.js
index 0acc3c7..66df875 100644
--- a/js/clipboard.js
+++ b/js/clipboard.js
@@ -116,7 +116,7 @@ var clipboard = (function () {
import_text: function () {
var data = import_textarea.value
lines = data.split("\n")
- var width = lines.reduce(function(a,b){ return Math.max(a, b.length) })
+ var width = lines.reduce(function(a,b){ console.log(a,b); return Math.max(a, b.length) }, 0)
var height = lines.length
if (width > 200) {
return alert("input too wide")
diff --git a/js/color_code.js b/js/color_code.js
index 55a284f..c8e8b84 100644
--- a/js/color_code.js
+++ b/js/color_code.js
@@ -18,7 +18,42 @@ var MircColor = (function(){
[127,127,127],
[210,210,210]
]
-
+ var HUES = [
+ [255,255,255],
+ [0,0,0],
+ [0,0,127],
+ [0,147,0],
+ [255,0,0],
+ [127,0,0],
+ [156,0,156],
+ [252,127,0],
+ [255,255,0],
+ [0,252,0],
+ [0,147,147],
+ [0,255,255],
+ [0,0,252],
+ [255,0,255],
+ null,
+ null,
+ ]
+ var GRAYS = [
+ [255,255,255],
+ [0,0,0],
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ null,
+ [127,127,127],
+ [210,210,210]
+ ]
function closest_to(pixel){
return COLORS.reduce(function(prev, curr, index) {
var d = distance(pixel, curr)
@@ -31,6 +66,7 @@ var MircColor = (function(){
}
function distance(u, v){
+ if (! v) return Math.Infinity
var r = u[0] - v[0]
var g = u[1] - v[1]
var b = u[2] - v[2]
@@ -137,6 +173,8 @@ var MircColor = (function(){
return {
colors: COLORS,
+ hues: HUES,
+ grays: GRAYS,
closest_to: closest_to,
distance: distance,
fromUrl: fromUrl,
diff --git a/js/ui/controls.js b/js/ui/controls.js
index 6f0fb91..485f690 100644
--- a/js/ui/controls.js
+++ b/js/ui/controls.js
@@ -203,14 +203,15 @@ var controls = (function(){
controls.canvas_width.key = int_key(function(n, keyCode){
controls.canvas_width.read()
- if (controls.canvas_width.char.length == 1) {
+ if (controls.canvas_width.char.length < 3) {
n = parseInt(controls.canvas_width.char) * 10 + n
}
controls.canvas_width.char = ""+n
controls.canvas_width.build()
})
controls.canvas_width.onBlur = function(){
- var w = parseInt(controls.canvas_width.char) || 1
+ var w = parseInt(controls.canvas_width.char)
+ if (! w) return;
controls.canvas_width.char = w+""
controls.canvas_width.build()
canvas.resize(w, canvas.h)
@@ -225,7 +226,8 @@ var controls = (function(){
controls.canvas_height.build()
})
controls.canvas_height.onBlur = function(){
- var h = parseInt(controls.canvas_height.char) || 1
+ var h = parseInt(controls.canvas_height.char)
+ if (! h) return;
controls.canvas_height.char = h+""
controls.canvas_height.build()
canvas.resize(canvas.w, h)
diff --git a/js/util.js b/js/util.js
index 91055f9..81e8f60 100644
--- a/js/util.js
+++ b/js/util.js
@@ -115,6 +115,10 @@ function weave(a){
reverse(aa[1]).forEach(function(el){ b.push(el) })
return b
}
+function cssRule (selector, declaration) {
+ var x = document.styleSheets, y = x.length-1;
+ x[y].insertRule(selector+"{"+declaration+"}", x[y].cssRules.length);
+}
// easing functions
function circular (t) { return Math.sqrt( 1 - ( --t * t ) ) }