on master help sign in
Fix bugs in `container` and an empty `flow`
commit9a40392e00f699c185e2193ce09650371f9f7206 authorevancz <info@elm-lang.org> dateTue 26 Mar 2013, 00:12 (14 years ago) parentdd10e82
3 files changed+24−23
libraries/Graphics/Element.elm+1 libraries/Native/List.js+15−15 runtime/Render/Element.js+8−8
libraries/Graphics/Element.elm+1
@@ -86,6 +86,7 @@ flow dir es =
8686 hs = List.map heightOf es
8787 newFlow w h = newElement w h (Flow dir es)
8888 in
89+ if es == [] then spacer 0 0 else
8990 case dir of
9091 DUp -> newFlow (List.maximum ws) (List.sum hs)
9192 DDown -> newFlow (List.maximum ws) (List.sum hs)
libraries/Native/List.js+15−15
@@ -20,7 +20,7 @@ Elm.Native.List = function(elm) {
2020
2121 function toArray(xs) {
2222 var out = [];
23− while (xs !== Nil) {
23+ while (xs.ctor !== 'Nil') {
2424 out.push(xs._0);
2525 xs = xs._1;
2626 }
@@ -49,7 +49,7 @@ Elm.Native.List = function(elm) {
4949 var root = Cons(xs._0. Nil);
5050 var curr = root;
5151 xs = xs._1;
52− while (xs !== Nil) {
52+ while (xs.ctor !== 'Nil') {
5353 curr._1 = Cons(xs._0. Nil);
5454 xs = xs._1;
5555 curr = curr._1;
@@ -64,7 +64,7 @@ Elm.Native.List = function(elm) {
6464 function last(xs) {
6565 if (xs === Nil) { throwError('last'); }
6666 var out = xs._0;
67− while (xs !== Nil) {
67+ while (xs.ctor !== 'Nil') {
6868 out = xs._0;
6969 xs = xs._1;
7070 }
@@ -73,7 +73,7 @@ Elm.Native.List = function(elm) {
7373
7474 function map(f, xs) {
7575 var arr = [];
76− while (xs !== Nil) {
76+ while (xs.ctor !== 'Nil') {
7777 arr.push(f(xs._0));
7878 xs = xs._1;
7979 }
@@ -84,7 +84,7 @@ Elm.Native.List = function(elm) {
8484 // ie, foldl :: (a -> b -> b) -> b -> [a] -> b
8585 function foldl(f, b, xs) {
8686 var acc = b;
87− while (xs !== Nil) {
87+ while (xs.ctor !== 'Nil') {
8888 acc = A2(f, xs._0, acc);
8989 xs = xs._1;
9090 }
@@ -130,7 +130,7 @@ Elm.Native.List = function(elm) {
130130
131131 function filter(pred, xs) {
132132 var arr = [];
133− while (xs !== Nil) {
133+ while (xs.ctor !== 'Nil') {
134134 if (pred(xs._0)) { arr.push(xs._0); }
135135 xs = xs._1;
136136 }
@@ -139,7 +139,7 @@ Elm.Native.List = function(elm) {
139139
140140 function length(xs) {
141141 var out = 0;
142− while (xs !== Nil) {
142+ while (xs.ctor !== 'Nil') {
143143 out += 1;
144144 xs = xs._1;
145145 }
@@ -147,7 +147,7 @@ Elm.Native.List = function(elm) {
147147 }
148148
149149 function member(x, xs) {
150− while (xs !== Nil) {
150+ while (xs.ctor !== 'Nil') {
151151 if (Utils.eq(x,xs._0)) return true;
152152 xs = xs._1;
153153 }
@@ -167,7 +167,7 @@ Elm.Native.List = function(elm) {
167167 }
168168
169169 function all(pred, xs) {
170− while (xs !== Nil) {
170+ while (xs.ctor !== 'Nil') {
171171 if (!pred(xs._0)) return false;
172172 xs = xs._1;
173173 }
@@ -175,7 +175,7 @@ Elm.Native.List = function(elm) {
175175 }
176176
177177 function any(pred, xs) {
178− while (xs !== Nil) {
178+ while (xs.ctor !== 'Nil') {
179179 if (pred(xs._0)) return true;
180180 xs = xs._1;
181181 }
@@ -184,7 +184,7 @@ Elm.Native.List = function(elm) {
184184
185185 function zipWith(f, xs, ys) {
186186 var arr = [];
187− while (xs !== Nil && ys !== Nil) {
187+ while (xs.ctor !== 'Nil' && ys.ctor !== 'Nil') {
188188 arr.push(A2(f, xs._0, ys._0));
189189 xs = xs._1;
190190 ys = ys._1;
@@ -194,7 +194,7 @@ Elm.Native.List = function(elm) {
194194
195195 function zip(xs, ys) {
196196 var arr = [];
197− while (xs !== Nil && ys !== Nil) {
197+ while (xs.ctor !== 'Nil' && ys.ctor !== 'Nil') {
198198 arr.push(Utils.Tuple2(xs._0, ys._0));
199199 xs = xs._1;
200200 ys = ys._1;
@@ -212,7 +212,7 @@ Elm.Native.List = function(elm) {
212212
213213 function take(n, xs) {
214214 var arr = [];
215− while (xs !== Nil && n > 0) {
215+ while (xs.ctor !== 'Nil' && n > 0) {
216216 arr.push(xs._0);
217217 xs = xs._1;
218218 --n;
@@ -221,7 +221,7 @@ Elm.Native.List = function(elm) {
221221 }
222222
223223 function drop(n, xs) {
224− while (xs !== Nil && n > 0) {
224+ while (xs.ctor !== 'Nil' && n > 0) {
225225 xs = xs._1;
226226 --n;
227227 }
@@ -233,7 +233,7 @@ Elm.Native.List = function(elm) {
233233 var s = toArray(sep);
234234 var out = toArray(xss._0);
235235 xss = xss._1;
236− while (xss !== Nil) {
236+ while (xss.ctor !== 'Nil') {
237237 out = out.concat(s, toArray(xss._0));
238238 xss = xss._1;
239239 }
runtime/Render/Element.js+8−8
@@ -113,9 +113,9 @@ function flow(dir,elist) {
113113}
114114
115115function toPos(pos) {
116− switch(pos[0]) {
117− case "Absolute": return pos[1] + "px";
118− case "Relative": return (pos[1] * 100) + "%";
116+ switch(pos.ctor) {
117+ case "Absolute": return pos._0 + "px";
118+ case "Relative": return (pos._0 * 100) + "%";
119119 }
120120}
121121
@@ -123,15 +123,15 @@ function setPos(pos,w,h,e) {
123123 e.style.position = 'absolute';
124124 e.style.margin = 'auto';
125125 var transform = '';
126− switch(pos.horizontal) {
126+ switch(pos.horizontal.ctor) {
127127 case 'P': e.style.right = toPos(pos.x); break;
128128 case 'Z': transform = 'translateX(' + ((-w/2)|0) + 'px) ';
129129 case 'N': e.style.left = toPos(pos.x); break;
130130 }
131− switch(pos.vertical) {
132− case 'N': e.style.bottom = toPos(pos.x); break;
131+ switch(pos.vertical.ctor) {
132+ case 'N': e.style.bottom = toPos(pos.y); break;
133133 case 'Z': transform += 'translateY(' + ((-h/2)|0) + 'px)';
134− case 'P': e.style.top = toPos(pos.x); break;
134+ case 'P': e.style.top = toPos(pos.y); break;
135135 }
136136 if (transform !== '') addTransform(e.style, transform);
137137 return e;
@@ -222,7 +222,7 @@ function update(node, curr, next) {
222222 removeTransform(inner.style);
223223 }
224224 }
225− setPos(nextE._0, next.props.width, next.props.height, node.firstChild);
225+ setPos(nextE._0, nextE._1.props.width, nextE._1.props.height, inner);
226226 break;
227227 case "Custom":
228228 if (currE.type === nextE.type) {