diff --git a/closure-compiler.jar b/closure-compiler.jar old mode 100644 new mode 100755 diff --git a/js-compiled.js b/js-compiled.js index f31faee..6e48ea9 100644 --- a/js-compiled.js +++ b/js-compiled.js @@ -47,22 +47,42 @@ function p(a, b) { this.y = b; } function r(a, b) { - return !!b && a.x == b.x && a.y == b.y; + var c = a.originalEvent.touches[void 0 === b ? 0 : b]; + return new p(c.pageX, c.pageY); } function t(a, b) { + return !!b && a.x == b.x && a.y == b.y; +} +function u(a, b) { return new p(a.x - b.x, a.y - b.y); } -p.prototype.add = function(a) { +g = p.prototype; +g.add = function(a) { return new p(this.x + a.x, this.y + a.y); }; -p.prototype.length = function() { +g.clone = function() { + return new p(this.x, this.y); +}; +g.length = function() { return Math.sqrt(this.x * this.x + this.y * this.y); }; -p.prototype.scale = function(a) { +g.scale = function(a) { return new p(this.x * a, this.y * a); }; -var u = ["+", "\u2012", "\u2013", "-", "|"], v = [">", "<", "^", "v"], ga = u.concat(v), w = "ontouchstart" in window || "onmsgesturechange" in window, x = new p(-1, 0), y = new p(1, 0), z = new p(0, -1), A = new p(0, 1), B = [x, y, z, A]; -function C(a, b) { +function v(a) { + return new p(a.x, a.y - 1); +} +function w(a) { + return new p(a.x, a.y + 1); +} +function x(a) { + return new p(a.x - 1, a.y); +} +g.right = function(a) { + return new p(this.x + (void 0 === a ? 1 : a), this.y); +}; +var y = ["+", "\u2012", "\u2013", "-", "|"], z = [">", "<", "^", "v"], ga = y.concat(z), B = "ontouchstart" in window || "onmsgesturechange" in window, C = new p(-1, 0), D = new p(1, 0), F = new p(0, -1), G = new p(0, 1), H = [C, D, F, G]; +function I(a, b) { this.a = Math.min(a.x, b.x); this.b = Math.min(a.y, b.y); this.c = Math.max(a.x, b.x); @@ -71,30 +91,30 @@ function C(a, b) { function ha(a) { return new p(a.a, a.b); } -C.prototype.contains = function(a) { +I.prototype.contains = function(a) { return a.x >= this.a && a.x <= this.c && a.y >= this.b && a.y <= this.f; }; function ia() { this.a = this.value = null; } -function D(a) { +function J(a) { return null != a.a ? a.a : a.value; } -function F(a) { - return -1 != ga.indexOf(D(a)); +function K(a) { + return ga.includes(J(a)); } -function G(a) { +function M(a) { return null == a.value && null == a.a; } function ja(a, b, c, d) { this.a = a; - this.b = b; - this.f = c; - this.c = d; - this.l = this.g = this.u = this.h = !1; + this.right = b; + this.c = c; + this.b = d; + this.h = this.f = this.l = this.g = !1; } -function H(a) { - return a.a + a.b + a.f + a.c; +function N(a) { + return a.a + a.right + a.c + a.b; } function ka(a, b) { this.position = a; @@ -104,102 +124,102 @@ function la(a, b) { this.position = a; this.a = b; } -;function J(a) { +;function O(a) { for (var b = 0;b < a.a.length;b++) { for (var c = 0;c < a.a[b].length;c++) { - null != D(a.a[b][c]) && K(a, new p(b, c), "\u2009"); + null != J(a.a[b][c]) && P(a, new p(b, c), "\u2009"); } } - M(a); + Q(a); } -function N(a, b) { +function R(a, b) { return a.a[b.x][b.y]; } -function K(a, b, c) { - var d = N(a, b); +function P(a, b, c) { + var d = R(a, b); a.b.push(new la(b, d)); d.a = c; a.c = !0; } -function O(a, b, c) { - D(N(a, b)) != c && K(a, b, c); +function ma(a, b, c) { + J(R(a, b)) != c && P(a, b, c); } -function P(a) { +function S(a) { for (var b = n(a.b), c = b.next();!c.done;c = b.next()) { c.value.a.a = null; } a.b.length = 0; } -function Q(a, b) { - var c = N(a, b), d = null != c.a ? c.a : c.value, e = -1 != u.indexOf(d), f = -1 != v.indexOf(d); +function na(a, b) { + var c = R(a, b), d = null != c.a ? c.a : c.value, e = y.includes(d), f = z.includes(d); if (!e && !f) { return d; } - c = R(a, b); - if (e && c.a && c.b && !c.f && !c.c) { + c = T(a, b); + if (e && c.a && c.right && !c.c && !c.b) { return "-"; } - if (e && !c.a && !c.b && c.f && c.c) { + if (e && !c.a && !c.right && c.c && c.b) { return "|"; } - if (4 == H(c)) { + if (4 == N(c)) { return "-"; } - if (f && 3 == H(c)) { + if (f && 3 == N(c)) { if (!c.a) { return "<"; } - if (!c.f) { + if (!c.c) { return "^"; } - if (!c.c) { + if (!c.b) { return "v"; } - if (!c.b) { + if (!c.right) { return ">"; } } - if ((e || f) && 3 == H(c)) { - c.h = F(N(a, b.add(x).add(z))); - c.u = F(N(a, b.add(y).add(z))); - c.g = F(N(a, b.add(x).add(A))); - c.l = F(N(a, b.add(y).add(A))); - if (!c.b && c.h && c.g || !c.a && c.u && c.l) { + if ((e || f) && 3 == N(c)) { + c.g = K(R(a, v(x(b)))); + c.l = K(R(a, v(b.right()))); + c.f = K(R(a, w(x(b)))); + c.h = K(R(a, w(b.right()))); + if (!c.right && c.g && c.f || !c.a && c.l && c.h) { return "|"; } - if (!c.c && c.h && c.u || !c.f && c.l && c.g) { + if (!c.b && c.g && c.l || !c.c && c.h && c.f) { return "-"; } - d = G(N(a, b.add(x).add(z))); - e = G(N(a, b.add(y).add(z))); - if (c.f && c.a && c.b && (!d || !e)) { + d = M(R(a, v(x(b)))); + e = M(R(a, v(b.right()))); + if (c.c && c.a && c.right && (!d || !e)) { return "-"; } - d = G(N(a, b.add(x).add(A))); - e = G(N(a, b.add(y).add(A))); - return !(c.c && c.a && c.b) || d && e ? "+" : "-"; + d = M(R(a, w(x(b)))); + e = M(R(a, w(b.right()))); + return !(c.b && c.a && c.right) || d && e ? "+" : "-"; } - if (f && 1 == H(c)) { + if (f && 1 == N(c)) { if (c.a) { return ">"; } - if (c.f) { + if (c.c) { return "v"; } - if (c.c) { + if (c.b) { return "^"; } - if (c.b) { + if (c.right) { return "<"; } } return d; } -function R(a, b) { - var c = F(N(a, b.add(x))), d = F(N(a, b.add(y))), e = F(N(a, b.add(z))), f = F(N(a, b.add(A))); +function T(a, b) { + var c = K(R(a, x(b))), d = K(R(a, b.right())), e = K(R(a, v(b))), f = K(R(a, w(b))); return new ja(c, d, e, f); } -function M(a, b) { +function Q(a, b) { var c = [], d = a.b.map(function(a) { return a.position.x.toString() + a.position.y.toString(); }), e = a.b.filter(function(a, b) { @@ -209,11 +229,11 @@ function M(a, b) { for (var e = n(e), f = e.next();!f.done;f = e.next()) { var k = f.value, f = k.position, k = k.a; c.push(new ka(f, null != k.value ? k.value : " ")); - var l = D(k); + var l = J(k); if ("\u2009" == l || " " == l) { l = null; } - F(k) && (l = Q(a, f)); + K(k) && (l = na(a, f)); k.a = null; k.value = l; } @@ -221,28 +241,26 @@ function M(a, b) { 0 < c.length && (50 < e.length && e.shift(), e.push(c)); a.c = !0; } -function ma(a) { +function oa(a) { if (a.g.length) { - var b = a.g.pop(), c; - for (c in b) { - var d = b[c]; - K(a, d.position, d.value); + for (var b = a.g.pop(), b = n(b), c = b.next();!c.done;c = b.next()) { + c = c.value, P(a, c.position, c.value); } - M(a, !0); + Q(a, !0); } } -function na(a) { +function pa(a) { if (a.f.length) { for (var b = a.f.pop(), b = n(b), c = b.next();!c.done;c = b.next()) { - c = c.value, K(a, c.position, c.value); + c = c.value, P(a, c.position, c.value); } - M(a); + Q(a); } } -function S(a) { +function U(a) { for (var b = new p(Number.MAX_VALUE, Number.MAX_VALUE), c = new p(-1, -1), d = 0;d < a.a.length;d++) { for (var e = 0;e < a.a[d].length;e++) { - null != D(a.a[d][e]) && (d < b.x && (b.x = d), e < b.y && (b.y = e), d > c.x && (c.x = d), e > c.y && (c.y = e)); + null != J(a.a[d][e]) && (d < b.x && (b.x = d), e < b.y && (b.y = e), d > c.x && (c.x = d), e > c.y && (c.y = e)); } } if (0 > c.x) { @@ -250,13 +268,13 @@ function S(a) { } for (var f = "", e = b.y;e <= c.y;e++) { for (var k = "", d = b.x;d <= c.x;d++) { - var l = Q(a, new p(d, e)), k = k + (null == l || "\u2009" == l ? " " : l); + var l = na(a, new p(d, e)), k = k + (null == l || "\u2009" == l ? " " : l); } f += k.replace(/\s+$/, "") + "\n"; } return f; } -function oa(a, b, c) { +function qa(a, b, c) { b = b.split("\n"); for (var d = new p(0, Math.round(b.length / 2)), e = 0;e < b.length;e++) { d.x = Math.max(d.x, Math.round(b[e].length / 2)); @@ -264,32 +282,66 @@ function oa(a, b, c) { for (e = 0;e < b.length;e++) { for (var f = b[e], k = 0;k < f.length;k++) { var l = f.charAt(k); - -1 != u.indexOf(l) && (l = "+"); - -1 != v.indexOf(l) && (l = "^"); - K(a, t((new p(k, e)).add(c), d), l); + y.includes(l) && (l = "+"); + P(a, u((new p(k, e)).add(c), d), l); } } } -;function pa(a) { +;function V(a, b, c, d, e) { + e = void 0 === e ? "+" : e; + var f = new I(b, c), k = f.a, l = f.b, A = f.c, f = f.f, E = d ? c.x : b.x; + for (d = d ? b.y : c.y;k++ < A;) { + var q = new p(k, d), L = T(a, new p(k, d)); + " " == e && 2 == L.c + L.b || ma(a, q, e); + } + for (;l++ < f;) { + q = new p(E, l), L = T(a, new p(E, l)), " " == e && 2 == L.a + L.right || ma(a, q, e); + } + P(a, b, e); + P(a, c, e); + ma(a, new p(E, d), e); +} +;function ra(a) { + this.a = a; + this.b = null; +} +g = ra.prototype; +g.start = function(a) { + this.b = a; +}; +g.i = function(a) { + S(this.a); + V(this.a, this.b, a, !0); + V(this.a, this.b, a, !1); +}; +g.m = function() { + Q(this.a); +}; +g.o = function() { + return "crosshair"; +}; +g.j = function() { +}; +function sa(a) { a.b.width = document.documentElement.clientWidth; a.b.height = document.documentElement.clientHeight; a.f = !0; } -function qa(a) { +function ta(a) { if (a.f || a.g.c) { - a.f = !1, a.g.c = !1, ra(a); + a.f = !1, a.g.c = !1, ua(a); } window.requestAnimationFrame(function() { - qa(a); + ta(a); }); } -function ra(a) { +function ua(a) { var b = a.context; b.setTransform(1, 0, 0, 1, 0, 0); b.clearRect(0, 0, a.b.width, a.b.height); b.scale(a.c, a.c); b.translate(a.b.width / 2 / a.c, a.b.height / 2 / a.c); - var c = t(T(a, new p(0, 0)), new p(3, 3)), d = T(a, new p(a.b.width, a.b.height)).add(new p(3, 3)); + var c = u(W(a, new p(0, 0)), new p(3, 3)), d = W(a, new p(a.b.width, a.b.height)).add(new p(3, 3)); c.x = Math.max(0, Math.min(c.x, 2E3)); d.x = Math.max(0, Math.min(d.x, 2E3)); c.y = Math.max(0, Math.min(c.y, 600)); @@ -308,12 +360,12 @@ function ra(a) { b.font = "15px Courier New"; for (var f = c.x;f < d.x;f++) { for (var k = c.y;k < d.y;k++) { - var l = N(a.g, new p(f, k)); - if (F(l) || null != l.a && " " != D(l)) { + var l = R(a.g, new p(f, k)); + if (K(l) || null != l.a && " " != J(l)) { a.context.fillStyle = null != l.a ? "#DEF" : "#F5F5F5", b.fillRect(9 * f - a.a.x, 17 * (k - 1) - a.a.y, 9, 17); } - var E = Q(a.g, new p(f, k)); - null == E || F(l) && !e || (a.context.fillStyle = "#000000", b.fillText(E, 9 * f - a.a.x, 17 * k - a.a.y - 3)); + var A = na(a.g, new p(f, k)); + null == A || K(l) && !e || (a.context.fillStyle = "#000000", b.fillText(A, 9 * f - a.a.x, 17 * k - a.a.y - 3)); } } if (a.h) { @@ -322,116 +374,149 @@ function ra(a) { b.beginPath(); for (e = c.x;e < d.x;e++) { for (l = !1, f = c.y;f < d.y;f++) { - k = N(a.g, new p(e, f)), F(k) && f != d.y - 1 || !l || (b.moveTo(9 * e - a.a.x + 4.5, 17 * l - a.a.y - 8.5), b.lineTo(9 * e - a.a.x + 4.5, 17 * (f - 1) - a.a.y - 8.5), l = !1), F(k) && !l && (l = f); + k = R(a.g, new p(e, f)), K(k) && f != d.y - 1 || !l || (b.moveTo(9 * e - a.a.x + 4.5, 17 * l - a.a.y - 8.5), b.lineTo(9 * e - a.a.x + 4.5, 17 * (f - 1) - a.a.y - 8.5), l = !1), K(k) && !l && (l = f); } } for (f = c.y;f < d.y;f++) { for (l = !1, e = c.x;e < d.x;e++) { - k = N(a.g, new p(e, f)), F(k) && e != d.x - 1 || !l || (b.moveTo(9 * l - a.a.x + 4.5, 17 * f - a.a.y - 8.5), b.lineTo(9 * (e - 1) - a.a.x + 4.5, 17 * f - a.a.y - 8.5), l = !1), F(k) && !l && (l = e); + k = R(a.g, new p(e, f)), K(k) && e != d.x - 1 || !l || (b.moveTo(9 * l - a.a.x + 4.5, 17 * f - a.a.y - 8.5), b.lineTo(9 * (e - 1) - a.a.x + 4.5, 17 * f - a.a.y - 8.5), l = !1), K(k) && !l && (l = e); } } a.context.stroke(); } } -function T(a, b) { +function W(a, b) { var c = new p((b.x - a.b.width / 2) / a.c + a.a.x, (b.y - a.b.height / 2) / a.c + a.a.y); return new p(Math.min(Math.max(1, Math.round((c.x - 4.5) / 9)), 1998), Math.min(Math.max(1, Math.round((c.y + 8.5) / 17)), 598)); } -;function U(a, b, c, d, e) { - e = void 0 === e ? "+" : e; - var f = new C(b, c), k = f.a, l = f.b, E = f.c, f = f.f, I = d ? c.x : b.x; - for (d = d ? b.y : c.y;k++ < E;) { - var q = new p(k, d), L = R(a, new p(k, d)); - " " == e && 2 == L.f + L.c || O(a, q, e); - } - for (;l++ < f;) { - q = new p(I, l), L = R(a, new p(I, l)), " " == e && 2 == L.a + L.b || O(a, q, e); - } - K(a, b, e); - K(a, c, e); - O(a, new p(I, d), e); +;function X(a) { + this.c = a; + this.a = this.b = null; } -function V(a) { - this.a = a; - this.b = null; -} -g = V.prototype; +g = X.prototype; g.start = function(a) { this.b = a; + this.i(a); }; g.i = function(a) { - P(this.a); - U(this.a, this.b, a, !0); - U(this.a, this.b, a, !1); + S(this.c); + this.a = a; + a = Math.min(this.b.y, this.a.y); + for (var b = Math.max(this.b.x, this.a.x), c = Math.max(this.b.y, this.a.y), d = Math.min(this.b.x, this.a.x);d <= b;d++) { + for (var e = a;e <= c;e++) { + P(this.c, new p(d, e), "\u2009"); + } + } }; g.m = function() { - M(this.a); + Q(this.c); }; g.o = function() { return "crosshair"; }; g.j = function() { }; -function W(a, b) { +function va(a, b) { this.a = a; this.c = b; this.b = null; } -g = W.prototype; +g = va.prototype; g.start = function(a) { this.b = a; }; g.i = function(a) { - P(this.a); - var b = R(this.a, this.b), c = R(this.a, a); - U(this.a, this.b, a, b.f && b.c || c.a && c.b); - this.c && K(this.a, a, "^"); + S(this.a); + var b = T(this.a, this.b), c = T(this.a, a); + V(this.a, this.b, a, b.c && b.b || c.a && c.right); + this.c && P(this.a, a, "^"); }; g.m = function() { - M(this.a); + Q(this.a); }; g.o = function() { return "crosshair"; }; g.j = function() { }; -function sa(a, b) { - this.a = a; - this.value = b; - w && ($("#freeform-tool-input").val(""), $("#freeform-tool-input").hide(0, function() { - $("#freeform-tool-input").show(0, function() { - $("#freeform-tool-input").focus(); - }); - })); +function wa(a) { + this.c = a; + this.g = this.f = this.b = this.a = null; + this.h = !0; + this.l = []; } -g = sa.prototype; +g = wa.prototype; g.start = function(a) { - K(this.a, a, this.value); + this.a && this.b && (new I(this.a, this.b)).contains(a) ? (this.f = a, xa(this), ya(this, a)) : (this.a = a, this.b = null, this.h = !1, this.i(a)); }; +function xa(a) { + var b = a.c.b.filter(function(a) { + return null != J(a.a) && "\u2009" != J(a.a); + }), c = ha(new I(a.a, a.b)); + a.l = b.map(function(a) { + return new ka(u(a.position, c), J(a.a)); + }); +} g.i = function(a) { - K(this.a, a, this.value); + if (this.f) { + ya(this, a); + } else { + if (1 != this.h) { + this.b = a; + S(this.c); + a = new I(this.a, a); + for (var b = a.a;b <= a.c;b++) { + for (var c = a.b;c <= a.f;c++) { + var d = new p(b, c), e = J(R(this.c, d)); + P(this.c, d, null == e ? "\u2009" : e); + } + } + } + } }; +function ya(a, b) { + a.g = b; + S(a.c); + var c = new X(a.c); + c.start(a.a); + c.i(a.b); + c = u(a.g, a.f).add(ha(new I(a.a, a.b))); + za(a, c); +} +function za(a, b) { + for (var c = n(a.l), d = c.next();!d.done;d = c.next()) { + var d = d.value, e = d.value; + P(a.c, d.position.add(b), e); + } +} g.m = function() { - M(this.a); + this.f && (Q(this.c), this.b = this.a = null); + this.g = this.f = null; + this.h = !0; }; -g.o = function() { - return "crosshair"; +g.o = function(a) { + return this.a && this.b && (new I(this.a, this.b)).contains(a) ? "pointer" : "default"; }; g.j = function(a) { - w && (this.value = $("#freeform-tool-input").val().substr(0, 1), $("#freeform-tool-input").blur(), $("#freeform-tool-input").hide(0)); - 1 == a.length && (this.value = a); + if (this.a && this.b && ("" != a && "" != a || xa(this), "" == a)) { + var b = new X(this.c); + b.start(this.a); + b.i(this.b); + Q(this.c); + } + "" == a && (za(this, this.a), Q(this.c)); }; -function ta(a) { +function Aa(a) { this.b = a; this.c = this.a = null; } -g = ta.prototype; +g = Aa.prototype; g.start = function(a) { - M(this.b); + Q(this.b); $("#text-tool-input").val(""); this.a = a; - a = D(N(this.b, this.a)); - K(this.b, this.a, null == a ? "\u2009" : a); + a = J(R(this.b, this.a)); + P(this.b, this.a, null == a ? "\u2009" : a); }; g.i = function() { }; @@ -447,55 +532,28 @@ g.o = function() { }; g.j = function() { var a = $("#text-tool-input").val(); - P(this.b); - for (var b = 0, c = 0, d = 0;d < a.length;d++) { - "\n" == a[d] ? (c++, b = 0) : (K(this.b, this.c.add(new p(b, c)), a[d]), b++); + S(this.b); + for (var b = this.b, c = this.c, d = 0, e = 0, a = n(a), f = a.next();!f.done;f = a.next()) { + f = f.value, "\n" == f ? (e++, d = 0) : (P(b, c.add(new p(d, e)), f), d++); } }; -function X(a) { - this.c = a; - this.a = this.b = null; -} -g = X.prototype; -g.start = function(a) { - this.b = a; - this.i(a); -}; -g.i = function(a) { - P(this.c); - this.a = a; - a = Math.min(this.b.y, this.a.y); - for (var b = Math.max(this.b.x, this.a.x), c = Math.max(this.b.y, this.a.y), d = Math.min(this.b.x, this.a.x);d <= b;d++) { - for (var e = a;e <= c;e++) { - K(this.c, new p(d, e), "\u2009"); - } - } -}; -g.m = function() { - M(this.c); -}; -g.o = function() { - return "crosshair"; -}; -g.j = function() { -}; -function ua(a) { +function Ba(a) { this.a = a; this.b = null; this.c = []; } -g = ua.prototype; +g = Ba.prototype; g.start = function(a) { var b; - if (w) { - if (F(N(this.a, a))) { + if (B) { + if (K(R(this.a, a))) { b = a; } else { - var c = B.concat([x.add(z), x.add(A), y.add(z), y.add(A)]); + var c = H.concat([C.add(F), C.add(G), D.add(F), D.add(G)]); b = null; for (var d = 0, c = n(c), e = c.next();!e.done;e = c.next()) { - var e = e.value, f = a.add(e), k = H(R(this.a, f)); - F(N(this.a, f)) && k > d && (b = e, d = k); + var e = e.value, f = a.add(e), k = N(T(this.a, f)); + K(R(this.a, f)) && k > d && (b = e, d = k); } b = null == b ? a : a.add(b); } @@ -504,18 +562,18 @@ g.start = function(a) { } this.b = b; this.c = []; - if (F(N(this.a, this.b))) { - R(this.a, this.b); + if (K(R(this.a, this.b))) { + T(this.a, this.b); b = []; - d = n(B); + d = n(H); for (c = d.next();!c.done;c = d.next()) { - for (c = c.value, e = va(this, this.b, c), e = n(e), f = e.next();!f.done;f = e.next()) { - var f = f.value, k = 0 != c.x, l = -1 != v.indexOf(D(N(this.a, a))), E = -1 != v.indexOf(D(N(this.a, f))); - if (1 == H(R(this.a, f))) { - b.push({position:f, s:k, w:l, v:E}); + for (c = c.value, e = Ca(this, this.b, c), e = n(e), f = e.next();!f.done;f = e.next()) { + var f = f.value, k = 0 != c.x, l = -1 != z.indexOf(J(R(this.a, a))), A = -1 != z.indexOf(J(R(this.a, f))); + if (1 == N(T(this.a, f))) { + b.push({position:f, s:k, v:l, u:A}); } else { - for (var I = n(B), q = I.next();!q.done;q = I.next()) { - q = q.value, 0 != c.add(q).length() && 2 != c.add(q).length() && (q = va(this, f, q), q.length && (q = q[0], b.push({position:q, s:k, w:l, A:E, v:-1 != v.indexOf(D(N(this.a, q)))}))); + for (var E = n(H), q = E.next();!q.done;q = E.next()) { + q = q.value, 0 != c.add(q).length() && 2 != c.add(q).length() && (q = Ca(this, f, q), q.length && (q = q[0], b.push({position:q, s:k, v:l, w:A, u:-1 != z.indexOf(J(R(this.a, q)))}))); } } } @@ -525,111 +583,70 @@ g.start = function(a) { } }; g.i = function(a) { - P(this.a); + S(this.a); for (var b = n(this.c), c = b.next();!c.done;c = b.next()) { var d = c.value; - U(this.a, this.b, d.position, d.s, " "); + V(this.a, this.b, d.position, d.s, " "); } for (var e in this.c) { - U(this.a, a, d.position, d.s); + V(this.a, a, d.position, d.s); } b = n(this.c); for (c = b.next();!c.done;c = b.next()) { - d = c.value, d.w && K(this.a, a, "^"), d.v && K(this.a, d.position, "^"), d.A && K(this.a, new p(d.s ? d.position.x : a.x, d.s ? a.y : d.position.y), "^"); + d = c.value, d.v && P(this.a, a, "^"), d.u && P(this.a, d.position, "^"), d.w && P(this.a, new p(d.s ? d.position.x : a.x, d.s ? a.y : d.position.y), "^"); } }; g.m = function() { - M(this.a); + Q(this.a); }; -function va(a, b, c) { - for (var d = new p(b.x, b.y), e = [];;) { +function Ca(a, b, c) { + for (var d = b.clone(), e = [];;) { var f = d.add(c); - if (!F(N(a.a, f))) { - return r(b, d) || e.push(d), e; + if (!K(R(a.a, f))) { + return t(b, d) || e.push(d), e; } d = f; - 3 == H(R(a.a, d)) && e.push(d); + 3 == N(T(a.a, d)) && e.push(d); } } g.o = function(a) { - return F(N(this.a, a)) ? "pointer" : "default"; + return K(R(this.a, a)) ? "pointer" : "default"; }; g.j = function() { }; -function wa(a) { - this.c = a; - this.g = this.f = this.b = this.a = null; - this.h = !0; - this.l = []; +function Da(a, b) { + this.a = a; + this.value = b; + B && ($("#freeform-tool-input").val(""), $("#freeform-tool-input").hide(0, function() { + $("#freeform-tool-input").show(0, function() { + $("#freeform-tool-input").focus(); + }); + })); } -g = wa.prototype; +g = Da.prototype; g.start = function(a) { - this.a && this.b && (new C(this.a, this.b)).contains(a) ? (this.f = a, xa(this), ya(this, a)) : (this.a = a, this.b = null, this.h = !1, this.i(a)); + P(this.a, a, this.value); }; -function xa(a) { - var b = a.c.b.filter(function(a) { - return null != D(a.a) && "\u2009" != D(a.a); - }), c = ha(new C(a.a, a.b)); - a.l = b.map(function(a) { - return new ka(t(a.position, c), D(a.a)); - }); -} g.i = function(a) { - if (this.f) { - ya(this, a); - } else { - if (1 != this.h) { - this.b = a; - P(this.c); - a = new C(this.a, a); - for (var b = a.a;b <= a.c;b++) { - for (var c = a.b;c <= a.f;c++) { - var d = new p(b, c), e = D(N(this.c, d)); - K(this.c, d, null == e ? "\u2009" : e); - } - } - } - } + P(this.a, a, this.value); }; -function ya(a, b) { - a.g = b; - P(a.c); - var c = new X(a.c); - c.start(a.a); - c.i(a.b); - c = t(a.g, a.f).add(ha(new C(a.a, a.b))); - za(a, c); -} -function za(a, b) { - for (var c = n(a.l), d = c.next();!d.done;d = c.next()) { - var d = d.value, e = d.value; - K(a.c, d.position.add(b), e); - } -} g.m = function() { - this.f && (M(this.c), this.b = this.a = null); - this.g = this.f = null; - this.h = !0; + Q(this.a); }; -g.o = function(a) { - return this.a && this.b && (new C(this.a, this.b)).contains(a) ? "pointer" : "default"; +g.o = function() { + return "crosshair"; }; g.j = function(a) { - if (this.a && this.b && ("" != a && "" != a || xa(this), "" == a)) { - var b = new X(this.c); - b.start(this.a); - b.i(this.b); - M(this.c); - } - "" == a && (za(this, this.a), M(this.c)); + B && (this.value = $("#freeform-tool-input").val().substr(0, 1), $("#freeform-tool-input").blur(), $("#freeform-tool-input").hide(0)); + 1 == a.length && (this.value = a); }; -function Aa(a, b) { - var c = T(a.a, b); +function Ea(a, b) { + var c = W(a.a, b); a.f || (a.f = c); - r(c, a.f) || (a.a.b.style.cursor = a.c.o(c)); - 2 != a.mode || r(c, a.f) || a.c.i(c); + t(c, a.f) || (a.a.b.style.cursor = a.c.o(c)); + 2 != a.mode || t(c, a.f) || a.c.i(c); if (1 == a.mode) { - var d = a.a, e = a.h.add(t(a.g, b).scale(1 / a.a.c)); + var d = a.a, e = a.h.add(u(a.g, b).scale(1 / a.a.c)); d.a = e; d.f = !0; } @@ -642,9 +659,9 @@ function Y(a) { a.h = null; a.f = null; } -function Ba(a) { +function Fa(a) { $(window).resize(function() { - pa(a.a); + sa(a.a); }); $("#draw-tools > button.tool").click(function(b) { $("#text-tool-widget").hide(0); @@ -652,15 +669,15 @@ function Ba(a) { $("#draw-tools > button.tool").removeClass("active"); $("#" + b).toggleClass("active"); $(".dialog").removeClass("visible"); - "box-button" == b && (a.c = new V(a.b)); - "line-button" == b && (a.c = new W(a.b, !1)); - "arrow-button" == b && (a.c = new W(a.b, !0)); - "freeform-button" == b && (a.c = new sa(a.b, "X")); + "box-button" == b && (a.c = new ra(a.b)); + "line-button" == b && (a.c = new va(a.b, !1)); + "arrow-button" == b && (a.c = new va(a.b, !0)); + "freeform-button" == b && (a.c = new Da(a.b, "X")); "erase-button" == b && (a.c = new X(a.b)); - "move-button" == b && (a.c = new ua(a.b)); - "text-button" == b && (a.c = new ta(a.b)); + "move-button" == b && (a.c = new Ba(a.b)); + "text-button" == b && (a.c = new Aa(a.b)); "select-button" == b && (a.c = new wa(a.b)); - M(a.b); + Q(a.b); a.a.b.focus(); }); $("#file-tools > button.tool").click(function(b) { @@ -668,18 +685,18 @@ function Ba(a) { $(".dialog").removeClass("visible"); $("#" + b + "-dialog").toggleClass("visible"); "import-button" == b && ($("#import-area").val(""), $("#import-area").focus()); - "export-button" == b && ($("#export-area").val(S(a.b)), $("#export-area").select()); - "clear-button" == b && J(a.b); - "undo-button" == b && ma(a.b); - "redo-button" == b && na(a.b); + "export-button" == b && ($("#export-area").val(U(a.b)), $("#export-area").select()); + "clear-button" == b && O(a.b); + "undo-button" == b && oa(a.b); + "redo-button" == b && pa(a.b); }); $("button.close-dialog-button").click(function() { $(".dialog").removeClass("visible"); }); $("#import-submit-button").click(function() { - J(a.b); - oa(a.b, $("#import-area").val(), T(a.a, new p(a.a.b.width / 2, a.a.b.height / 2))); - M(a.b); + O(a.b); + qa(a.b, $("#import-area").val(), W(a.a, new p(a.a.b.width / 2, a.a.b.height / 2))); + Q(a.b); $("#import-area").val(""); $(".dialog").removeClass("visible"); }); @@ -701,7 +718,7 @@ function Ba(a) { $(window).keydown(function(b) { var c = null; if (b.ctrlKey || b.metaKey) { - 67 == b.keyCode && (c = ""), 86 == b.keyCode && (c = ""), 90 == b.keyCode && ma(a.b), 89 == b.keyCode && na(a.b), 88 == b.keyCode && (c = ""); + 67 == b.keyCode && (c = ""), 86 == b.keyCode && (c = ""), 90 == b.keyCode && oa(a.b), 89 == b.keyCode && pa(a.b), 88 == b.keyCode && (c = ""); } 8 == b.keyCode && (c = ""); 13 == b.keyCode && (c = ""); @@ -719,64 +736,39 @@ function Ba(a) { }); $("#text-tool-close").click(function() { $("#text-tool-widget").hide(); - M(a.b); + Q(a.b); }); } -;function Ca(a, b) { - var c = this; - this.f = !1; - this.b = a; - this.g = b; - this.a = null; - this.c = ""; - Da(this); - $("#drive-button").click(function() { - c.f ? Ea(c) : (Fa(c, !1), Ga(c)); - }); - $("#drive-filename").click(function() { - var a = "" + $("#drive-filename").text(), a = prompt("Enter new filename:", a); - c.a.title = a; - Z(c); - Ha(); - }); - Ia(this); - $(window).on("hashchange", this.h); - $("#drive-new-file-button").click(function() { - c.a = null; - J(c.b); - window.location.hash = ""; - Z(c); - $("#drive-dialog").removeClass("visible"); +;function Ga(a, b) { + window.gapi.auth.authorize({client_id:"125643747010-9s9n1ne2fnnuh5v967licfkt83r4vba5.apps.googleusercontent.com", scope:"https://www.googleapis.com/auth/drive", A:b}, function(b) { + !b || b.error || a.f || (a.f = !0, $("#drive-button").addClass("active"), window.setTimeout(function() { + Ha(a); + }, 500)); }); } -function Fa(a, b) { - window.gapi.auth.authorize({client_id:"125643747010-9s9n1ne2fnnuh5v967licfkt83r4vba5.apps.googleusercontent.com", scope:"https://www.googleapis.com/auth/drive", immediate:b}, function(b) { - !b || b.error || a.f || (a.f = !0, $("#drive-button").addClass("active"), window.setTimeout(a.h, 500)); - }); -} -function Da(a) { - window.gapi && window.gapi.auth && window.gapi.auth.authorize ? Fa(a, !0) : window.setTimeout(function() { - Da(a); +function Ia(a) { + window.gapi && window.gapi.auth && window.gapi.auth.authorize ? Ga(a, !0) : window.setTimeout(function() { + Ia(a); }, 500); } -function Ga(a) { +function Ja(a) { window.setTimeout(function() { - a.f ? Ea(a) : (Fa(a, !0), Ga(a)); + a.f ? Ka(a) : (Ga(a, !0), Ja(a)); }, 1E3); } -function Ja(a, b) { +function La(a, b) { a.a = b; $("#drive-filename").text(b.title); window.location.hash = b.id; } -function Ea(a) { +function Ka(a) { $("#drive-dialog").addClass("visible"); - var b = S(a.b); + var b = U(a.b); 5 < b.length && b != a.c && Z(a); - Ha(); + Ma(); } -function Ha() { - Ka(window.gapi.client.request({path:"/drive/v2/files", params:{q:"mimeType = 'text/plain' and trashed = false"}, method:"GET"}), function(a) { +function Ma() { + Na(window.gapi.client.request({path:"/drive/v2/files", params:{q:"mimeType = 'text/plain' and trashed = false"}, method:"GET"}), function(a) { $("#drive-file-list").children().remove(); a = a.items; for (var b in a) { @@ -791,7 +783,7 @@ function Ha() { } }); } -function Ka(a, b) { +function Na(a, b) { try { a.execute(function(a) { a.error || b(a); @@ -799,42 +791,41 @@ function Ka(a, b) { } catch (c) { } } -function Ia(a) { - S(a.b) != a.c && a.a && a.a.editable && Z(a); +function Oa(a) { + U(a.b) != a.c && a.a && a.a.editable && Z(a); window.setTimeout(function() { - Ia(a); + Oa(a); }, 5E3); } function Z(a) { - var b = S(a.b); + var b = U(a.b); $("#drive-save-state").text("Saving..."); - Ka(La(a, b), function(c) { - Ja(a, c); + Na(Pa(a, b), function(c) { + La(a, c); $("#drive-save-state").text("Saved"); a.c = b; }); } -Ca.prototype.h = function() { - var a = this; - 1 < window.location.hash.length && ($("#drive-save-state").text("Loading..."), Ka(window.gapi.client.request({path:"/drive/v2/files/" + window.location.hash.substr(1, window.location.hash.length - 1), method:"GET"}), function(b) { - Ja(a, b); - Ma(a); +function Ha(a) { + 1 < window.location.hash.length && ($("#drive-save-state").text("Loading..."), Na(window.gapi.client.request({path:"/drive/v2/files/" + window.location.hash.substr(1, window.location.hash.length - 1), method:"GET"}), function(b) { + La(a, b); + Qa(a); })); -}; -function Ma(a) { - Na(a.a.downloadUrl, function(b) { +} +function Qa(a) { + Ra(a.a.downloadUrl, function(b) { $("#drive-save-state").text("Loaded"); - J(a.b); - oa(a.b, b, T(a.g, new p(a.g.b.width / 2, a.g.b.height / 2))); - M(a.b); - a.c = S(a.b); + O(a.b); + qa(a.b, b, W(a.g, new p(a.g.b.width / 2, a.g.b.height / 2))); + Q(a.b); + a.c = U(a.b); }); } -function La(a, b) { +function Pa(a, b) { var c = "\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n" + JSON.stringify({title:a.a ? a.a.title : "Untitled ASCII Diagram", mimeType:"text/plain"}) + "\r\n---------314159265358979323846\r\nContent-Type: text/plain\r\n\r\n" + b + "\r\n---------314159265358979323846--"; - return window.gapi.client.request({path:"/upload/drive/v2/files" + (a.a ? "/" + a.a.id : ""), method:a.a ? "PUT" : "POST", params:{uploadType:"multipart"}, headers:{"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'}, body:c}); + return window.gapi.client.request({method:a.a ? "PUT" : "POST", path:"/upload/drive/v2/files" + (a.a ? "/" + a.a.id : ""), params:{uploadType:"multipart"}, headers:{"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'}, body:c}); } -function Na(a, b) { +function Ra(a, b) { var c = window.gapi.auth.getToken().access_token, d = new XMLHttpRequest; d.open("GET", a); d.setRequestHeader("Authorization", "Bearer " + c); @@ -846,16 +837,16 @@ function Na(a, b) { }; d.send(); } -;function Oa(a) { - var b = a.a.a.b; - $(b).on("mousewheel", function(b) { +;function Sa(a) { + var b = $(a.a.a.b); + b.on("mousewheel", function(b) { b = a.a.a.c * (0 < b.originalEvent.wheelDelta ? 1.1 : .9); b = Math.max(Math.min(b, 5), .2); var c = a.a.a; c.c = b; c.f = !0; }); - $(b).mousedown(function(b) { + b.mousedown(function(b) { if (b.ctrlKey || b.metaKey) { var c = a.a; b = new p(b.clientX, b.clientY); @@ -863,20 +854,20 @@ function Na(a, b) { c.g = b; c.h = c.a.a; } else { - c = a.a, b = new p(b.clientX, b.clientY), c.mode = 2, c.c.start(T(c.a, b)); + c = a.a, b = new p(b.clientX, b.clientY), c.mode = 2, c.c.start(W(c.a, b)); } }); - $(b).mouseup(function() { + b.mouseup(function() { Y(a.a); }); - $(b).mouseleave(function() { + b.mouseleave(function() { Y(a.a); }); - $(b).mousemove(function(b) { - Aa(a.a, new p(b.clientX, b.clientY)); + b.mousemove(function(b) { + Ea(a.a, new p(b.clientX, b.clientY)); }); } -function Pa(a, b) { +function Ta(a, b) { a.f = b; a.h = $.now(); a.b = !1; @@ -884,39 +875,45 @@ function Pa(a, b) { if (!a.b && !a.c && a.f) { var c = a.a; c.mode = 2; - c.c.start(T(c.a, b)); + c.c.start(W(c.a, b)); } }, 150); } -function Qa(a) { - var b = a.a.a.b; - $(b).on("touchstart", function(b) { +function Ua(a) { + var b = $(a.a.a.b); + b.on("touchstart", function(b) { b.preventDefault(); if (1 == b.originalEvent.touches.length) { - Pa(a, new p(b.originalEvent.touches[0].pageX, b.originalEvent.touches[0].pageY)); + Ta(a, r(b)); } else { if (1 < b.originalEvent.touches.length) { - var c = new p(b.originalEvent.touches[0].pageX, b.originalEvent.touches[0].pageY); - b = new p(b.originalEvent.touches[1].pageX, b.originalEvent.touches[1].pageY); + var c = r(b, 0); + b = r(b, 1); Y(a.a); a.c = !0; a.b = !1; - a.l = t(c, b).length(); + a.l = u(c, b).length(); a.g = a.a.a.c; } } }); - $(b).on("touchmove", function(b) { + b.on("touchmove", function(b) { b.preventDefault(); if (1 == b.originalEvent.touches.length) { - var c = new p(b.originalEvent.touches[0].pageX, b.originalEvent.touches[0].pageY); - !a.b && 150 > $.now() - a.h && 6 < t(c, a.f).length() && (a.b = !0, b = a.a, b.mode = 1, b.g = c, b.h = b.a.a); - Aa(a.a, c); + b = r(b); + if (!a.b && 150 > $.now() - a.h && 6 < u(b, a.f).length()) { + a.b = !0; + var c = a.a; + c.mode = 1; + c.g = b; + c.h = c.a.a; + } + Ea(a.a, b); } else { - 1 < b.originalEvent.touches.length && (c = new p(b.originalEvent.touches[0].pageX, b.originalEvent.touches[0].pageY), b = new p(b.originalEvent.touches[1].pageX, b.originalEvent.touches[1].pageY), a.c && (c = a.g * t(c, b).length() / a.l, c = Math.max(Math.min(c, 5), .5), b = a.a.a, b.c = c, b.f = !0)); + 1 < b.originalEvent.touches.length && a.c && (b = a.g * u(r(b, 0), r(b, 1)).length() / a.l, b = Math.max(Math.min(b, 5), .5), c = a.a.a, c.c = b, c.f = !0); } }); - $(b).on("touchend", function(b) { + b.on("touchend", function(b) { b.preventDefault(); a.b = !1; a.c = !1; @@ -924,7 +921,7 @@ function Qa(a) { Y(a.a); }); } -;var Ra = new function() { +;var Va = new function() { this.a = Array(2E3); this.b = []; this.c = !0; @@ -936,7 +933,7 @@ function Qa(a) { this.a[a][b] = new ia; } } -}, Sa = new function(a) { +}, Wa = new function(a) { this.g = a; this.b = document.getElementById("ascii-canvas"); this.context = this.b.getContext("2d"); @@ -944,24 +941,52 @@ function Qa(a) { this.a = new p(9E3, 5100); this.f = !0; this.h = !1; - pa(this); -}(Ra), Ta = new function(a, b) { + sa(this); +}(Va), Xa = new function(a, b) { this.a = a; this.b = b; - this.c = new V(b); + this.c = new ra(b); this.mode = 0; this.f = null; - Ba(this); -}(Sa, Ra); + Fa(this); +}(Wa, Va); new function(a) { this.a = a; this.c = this.b = !1; - Qa(this); -}(Ta); + Ua(this); +}(Xa); new function(a) { this.a = a; + Sa(this); +}(Xa); +new function(a, b) { + var c = this; + this.f = !1; + this.b = a; + this.g = b; + this.a = null; + this.c = ""; + Ia(this); + $("#drive-button").click(function() { + c.f ? Ka(c) : (Ga(c, !1), Ja(c)); + }); + $("#drive-filename").click(function() { + var a = "" + $("#drive-filename").text(), a = prompt("Enter new filename:", a); + c.a.title = a; + Z(c); + Ma(); + }); Oa(this); -}(Ta); -new Ca(Ra, Sa); -qa(Sa); + $(window).on("hashchange", function() { + Ha(c); + }); + $("#drive-new-file-button").click(function() { + c.a = null; + O(c.b); + window.location.hash = ""; + Z(c); + $("#drive-dialog").removeClass("visible"); + }); +}(Va, Wa); +ta(Wa); diff --git a/js-lib/controller.js b/js-lib/controller.js index 9a09fb4..8a72769 100644 --- a/js-lib/controller.js +++ b/js-lib/controller.js @@ -1,26 +1,17 @@ -import * as c from './constants'; -import Vector from './vector'; -import View from './view'; -import State from './state'; -import { - DrawFunction, - DrawBox, - DrawLine, - DrawFreeform, - DrawErase, - DrawMove, - DrawText, - DrawSelect, -} from './draw/index'; - +import * as c from "./constants"; +import Vector from "./vector"; +import View from "./view"; +import State from "./state"; +import { DrawFunction, DrawBox, DrawLine, DrawFreeform, DrawErase, DrawMove, DrawText, DrawSelect } from "./draw/index"; +import DrawFunction from "./function"; /** * Different modes of control. */ const Mode = { - NONE: 0, - DRAG: 1, - DRAW: 2 + NONE: 0, + DRAG: 1, + DRAW: 2 }; /** @@ -86,10 +77,7 @@ export default class Controller { // Drag in progress, update the view origin. if (this.mode == Mode.DRAG) { - this.view.setOffset(this.dragOriginCell.add( - this.dragOrigin - .subtract(position) - .scale(1 / this.view.zoom))); + this.view.setOffset(this.dragOriginCell.add(this.dragOrigin.subtract(position).scale(1 / this.view.zoom))); } this.lastMoveCell = moveCell; } @@ -112,41 +100,42 @@ export default class Controller { * Installs input bindings for common use cases devices. */ installBindings() { - $(window).resize(e => { this.view.resizeCanvas() }); + $(window).resize(e => { + this.view.resizeCanvas(); + }); - $('#draw-tools > button.tool').click(e => { - $('#text-tool-widget').hide(0); + $("#draw-tools > button.tool").click(e => { + $("#text-tool-widget").hide(0); this.handleDrawButton(e.target.id); }); - $('#file-tools > button.tool').click(e => { + $("#file-tools > button.tool").click(e => { this.handleFileButton(e.target.id); }); - $('button.close-dialog-button').click(e => { - $('.dialog').removeClass('visible'); + $("button.close-dialog-button").click(e => { + $(".dialog").removeClass("visible"); }); - $('#import-submit-button').click(e => { + $("#import-submit-button").click(e => { this.state.clear(); this.state.fromText( - /** @type {string} */ - ($('#import-area').val()), - this.view.screenToCell(new Vector( - this.view.canvas.width / 2, - this.view.canvas.height / 2))); + /** @type {string} */ + ($("#import-area").val()), + this.view.screenToCell(new Vector(this.view.canvas.width / 2, this.view.canvas.height / 2)) + ); this.state.commitDraw(); - $('#import-area').val(''); - $('.dialog').removeClass('visible'); + $("#import-area").val(""); + $(".dialog").removeClass("visible"); }); - $('#use-lines-button').click(e => { - $('.dialog').removeClass('visible'); + $("#use-lines-button").click(e => { + $(".dialog").removeClass("visible"); this.view.setUseLines(true); }); - $('#use-ascii-button').click(e => { - $('.dialog').removeClass('visible'); + $("#use-ascii-button").click(e => { + $(".dialog").removeClass("visible"); this.view.setUseLines(false); }); @@ -159,14 +148,14 @@ export default class Controller { }); // Bit of a hack, just triggers the text tool to get a new value. - $('#text-tool-input, #freeform-tool-input').keyup(() => { - this.drawFunction.handleKey(''); + $("#text-tool-input, #freeform-tool-input").keyup(() => { + this.drawFunction.handleKey(""); }); - $('#text-tool-input, #freeform-tool-input').change(() => { - this.drawFunction.handleKey(''); + $("#text-tool-input, #freeform-tool-input").change(() => { + this.drawFunction.handleKey(""); }); - $('#text-tool-close').click(() => { - $('#text-tool-widget').hide(); + $("#text-tool-close").click(() => { + $("#text-tool-widget").hide(); this.state.commitDraw(); }); } @@ -176,33 +165,33 @@ export default class Controller { * @param {string} id The ID of the element clicked. */ handleDrawButton(id) { - $('#draw-tools > button.tool').removeClass('active'); - $('#' + id).toggleClass('active'); - $('.dialog').removeClass('visible'); + $("#draw-tools > button.tool").removeClass("active"); + $("#" + id).toggleClass("active"); + $(".dialog").removeClass("visible"); // Install the right draw tool based on button pressed. - if (id == 'box-button') { + if (id == "box-button") { this.drawFunction = new DrawBox(this.state); } - if (id == 'line-button') { + if (id == "line-button") { this.drawFunction = new DrawLine(this.state, false); } - if (id == 'arrow-button') { + if (id == "arrow-button") { this.drawFunction = new DrawLine(this.state, true); } - if (id == 'freeform-button') { + if (id == "freeform-button") { this.drawFunction = new DrawFreeform(this.state, "X"); } - if (id == 'erase-button') { + if (id == "erase-button") { this.drawFunction = new DrawErase(this.state); } - if (id == 'move-button') { + if (id == "move-button") { this.drawFunction = new DrawMove(this.state); } - if (id == 'text-button') { + if (id == "text-button") { this.drawFunction = new DrawText(this.state, this.view); } - if (id == 'select-button') { + if (id == "select-button") { this.drawFunction = new DrawSelect(this.state); } this.state.commitDraw(); @@ -214,25 +203,25 @@ export default class Controller { * @param {string} id The ID of the element clicked. */ handleFileButton(id) { - $('.dialog').removeClass('visible'); - $('#' + id + '-dialog').toggleClass('visible'); + $(".dialog").removeClass("visible"); + $("#" + id + "-dialog").toggleClass("visible"); - if (id == 'import-button') { - $('#import-area').val(''); - $('#import-area').focus(); + if (id == "import-button") { + $("#import-area").val(""); + $("#import-area").focus(); } - if (id == 'export-button') { - $('#export-area').val(this.state.outputText()); - $('#export-area').select(); + if (id == "export-button") { + $("#export-area").val(this.state.outputText()); + $("#export-area").select(); } - if (id == 'clear-button') { + if (id == "clear-button") { this.state.clear(); } - if (id == 'undo-button') { + if (id == "undo-button") { this.state.undo(); } - if (id == 'redo-button') { + if (id == "redo-button") { this.state.redo(); } } @@ -256,19 +245,41 @@ export default class Controller { var specialKeyCode = null; if (event.ctrlKey || event.metaKey) { - if (event.keyCode == 67) { specialKeyCode = c.KEY_COPY; } - if (event.keyCode == 86) { specialKeyCode = c.KEY_PASTE; } - if (event.keyCode == 90) { this.state.undo(); } - if (event.keyCode == 89) { this.state.redo(); } - if (event.keyCode == 88) { specialKeyCode = c.KEY_CUT; } + if (event.keyCode == 67) { + specialKeyCode = c.KEY_COPY; + } + if (event.keyCode == 86) { + specialKeyCode = c.KEY_PASTE; + } + if (event.keyCode == 90) { + this.state.undo(); + } + if (event.keyCode == 89) { + this.state.redo(); + } + if (event.keyCode == 88) { + specialKeyCode = c.KEY_CUT; + } } - if (event.keyCode == 8) { specialKeyCode = c.KEY_BACKSPACE; } - if (event.keyCode == 13) { specialKeyCode = c.KEY_RETURN; } - if (event.keyCode == 38) { specialKeyCode = c.KEY_UP; } - if (event.keyCode == 40) { specialKeyCode = c.KEY_DOWN; } - if (event.keyCode == 37) { specialKeyCode = c.KEY_LEFT; } - if (event.keyCode == 39) { specialKeyCode = c.KEY_RIGHT; } + if (event.keyCode == 8) { + specialKeyCode = c.KEY_BACKSPACE; + } + if (event.keyCode == 13) { + specialKeyCode = c.KEY_RETURN; + } + if (event.keyCode == 38) { + specialKeyCode = c.KEY_UP; + } + if (event.keyCode == 40) { + specialKeyCode = c.KEY_DOWN; + } + if (event.keyCode == 37) { + specialKeyCode = c.KEY_LEFT; + } + if (event.keyCode == 39) { + specialKeyCode = c.KEY_RIGHT; + } if (specialKeyCode != null) { //event.preventDefault(); @@ -277,4 +288,3 @@ export default class Controller { } } } - diff --git a/js-lib/draw/index.js b/js-lib/draw/index.js index 59cc4d5..c860704 100644 --- a/js-lib/draw/index.js +++ b/js-lib/draw/index.js @@ -1,9 +1,8 @@ -export { default as DrawFunction } from './function'; -export { default as DrawBox } from './box'; -export { default as DrawBoxText } from './boxtext'; -export { default as DrawErase } from './erase'; -export { default as DrawLine } from './line'; -export { default as DrawSelect } from './select'; -export { default as DrawText } from './text'; -export { default as DrawMove } from './move'; -export { default as DrawFreeform } from './freeform'; +export { default as DrawFunction } from "./function"; +export { default as DrawBox } from "./box"; +export { default as DrawErase } from "./erase"; +export { default as DrawLine } from "./line"; +export { default as DrawSelect } from "./select"; +export { default as DrawText } from "./text"; +export { default as DrawMove } from "./move"; +export { default as DrawFreeform } from "./freeform";